Foros del Web » Programando para Internet » PHP »

Ayuda con Formulario - Urgente

Estas en el tema de Ayuda con Formulario - Urgente en el foro de PHP en Foros del Web. Hola, tenemos un formulario en el que queremos que los datos se guarden en una base de datos mysql. Hasta aqui todo correcto, tenemos nuestro ...
  #1 (permalink)  
Antiguo 19/07/2007, 12:39
 
Fecha de Ingreso: mayo-2007
Mensajes: 118
Antigüedad: 16 años, 11 meses
Puntos: 0
Ayuda con Formulario - Urgente

Hola, tenemos un formulario en el que queremos que los datos se guarden en una base de datos mysql. Hasta aqui todo correcto, tenemos nuestro formulario que nos carga los datos correctamente.

El problema nos surge, cuando queremos incluir tambien codigo javascript para incluir el tipico alert de "Los datos con asterico son obligarios", "su formulario se ha procesado correctamte",...

Tambien conseguimos esta funcionalidad, el problema es que no lo realiza en la misma pagina donde tenemos nuestro formulario.

Lo que queremos es que cuando metamos todos los datos del formulario y pulsemos enviar, nos mantenga la pagina en la que estamos y encima del formulario nos muestre el alert.

Os dejo el codigo que hemos utilizado.

Muchisimas gracias de antemano.


Este seria nuestro formulario
Código:
<form style="text-align:center" class="prueba"  name="datos" action="datos_empleo.php" method="post">
<fieldset style="text-align:center">
<legend>Introduzca los datos de su anuncio</legend>
<br>
<label for="oferta_demanda">*Oferta/Demanda:</label>
<select name="Oferta_Demanda">
        	<option>Oferta de empleo</option>
	<option>Demanda de empleo</option>
</select><br><br>						
<label for="nombre">*Nombre:</label><input type="text" name="Contacto" /><br><br>
<label for="puesto">Puesto:</label><input type="text" name="Puesto" /><br><br>						
<label for="telefono">Teléfono:</label><input name="Telefono" type="text" maxlength="9" /><br><br>
<label for="movil">Móvil:</label><input name="Movil" type="text" maxlength="9" /><br><br>
<label for="email">email:</label><input type="text" name="email" /><br><br>
<label for="descripcion">*Anuncio:</label>
<textarea name="Descripcion"></textarea>
<br>
<p class="submit"><input type="submit" value="Enviar" /></p>
</fieldset>
</form>
y este es el script php que se ejecuta
Código:
<?PHP
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if(isset($_POST['Contacto']) && !empty($_POST['Contacto']) &&
isset($_POST['Descripcion']) && !empty($_POST['Descripcion'])) 
{

	// Si entramos es que todo se ha realizado correctamente
	
	include("conect2.php");
	$link=Conectarse();
	
	// Con esta sentencia SQL insertaremos los datos en la base de datos
	mysql_query("INSERT INTO empleo (Oferta_Demanda,Tipo_Puesto,Persona_Contacto,Telefono,Movil,email,Anuncio)
	VALUES ('{$_POST['Oferta_Demanda']}','{$_POST['Puesto']}','{$_POST['Contacto']}','{$_POST['Telefono']}','{$_POST['Movil']}','{$_POST['email']}','{$_POST['Descripcion']}')",$link);
	
	// Ahora comprobaremos que todo ha ido correctamente
	$my_error = mysql_error($link);
	
	if(!empty($my_error))
	{
	echo "Ha habido un error al insertar los valores. $my_error"; 
	
	} else {
	
	echo "Los datos han sido introducidos satisfactoriamente";
	
	}
?>
	<script language="javascript">
	<!--
	alert("Los datos han sido introducidos correctamente."); 
	//-->
	</script>
<?PHP
}
 else
{
?>
	<script language="javascript">
	<!--
	alert("Los datos con asterisco son obligatorios, por favor rellénelos y pulse ENVIAR"); 
	//-->
	</script>
<?PHP
}
?>
  #2 (permalink)  
Antiguo 19/07/2007, 12:52
Avatar de malcolmim  
Fecha de Ingreso: abril-2007
Mensajes: 50
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con Formulario - Urgente

ok en primero para el alert de java script debe de ser algo asi como esto:

function validar()
{
if(document.formAlta.elements[0].value==""){alert("No puede dejar nombre de usuario vacio"); document.formAlta.elements[0].focus(); return false;}
}

</script>


asi la llamos en el formulario
<form action="enviar.php"method="POST" name="formAlta" onsubmit="return validar();">

asi solo valida los campos que sean obligatorio al detectar que estan en blanco
espero te sirva de algo es mas o menos una idea
  #3 (permalink)  
Antiguo 19/07/2007, 12:52
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con Formulario - Urgente

Hola.

Su problema se resolveria si en vez de pone un botón de tipo Submit pusiera un botón de tipo botón y asignarle una funcion javascript para validarlo todo y mostrar alert en caso de fallo. Es decir poner esto:

Código HTML:
<p class="submit"><input type="button" value="Enviar" onclick="validar()"; /></p> 
Por lo tanto una vez realizado todas las validaciones, si todo ha sido validado se envia el formulario de la forma:

Código HTML:
// Este codigo seria en javascript 
var error="";
// Se evalua con todas las funciones que presentó con sus alert pero si hay error o fallo de validacion poner la variable error a 1 ( error=1)

// Una vez validado se envia el formulario si no ha visto errores
if(error=="") window.document.datos.submit();
Saludos y espero que le sea de ayuda.
  #4 (permalink)  
Antiguo 19/07/2007, 12:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años
Puntos: 2
Re: Ayuda con Formulario - Urgente

Hola ARJsystem, el problema, es que los alerts los has puesto, en el archivo equivocado, se ponen en el mismo archivo donde esta el formulario, podrias hacer, esto, una funcion en el archivo del form de esta manera:

function mensaje(msj){
alert(msg);
}

y despues, tienes que hacer, las comprobaciones en javascript, como las hicistes en php, las mismas condiciones, eso, en otra funcion, y que cada vez que no se cumpla una condicion, llame a mensaje('el mensaje de error que quieras'), y asi, saldran tantos alerts como quieras, y si no hay ningun error, no saldra ningun alert, y todo funcionara y se mandara al archivo php, no debes quitar las comprobaciones del php, ya que son mas seguras que javascript, se deben de tener en los dos lados.

Un saludo, espero que te halla quedado claro, donde colocar el codigo javascript
  #5 (permalink)  
Antiguo 22/07/2007, 16:08
 
Fecha de Ingreso: mayo-2007
Mensajes: 118
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Ayuda con Formulario - Urgente

Muchas gracias por contestar, me habeis servido de mucha ayuda, ya consigo sacar los alert en la pagina del formulario.

Me queda un pequeño detalle, y es que al ejecutar el script php, no quiero que me navegue a una pagina nueva (seria una pagina blanca) que es donde esta metido el script.

No se si me explico bien, me gustraria que al ejecurarse el script php se quedara en la misma pagina donde se encuentra el formulario.

A ver si con esto consigo solucionar mi problema.

Muchas gracias de antemano.
  #6 (permalink)  
Antiguo 22/07/2007, 16:24
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años
Puntos: 2
Re: Ayuda con Formulario - Urgente

Para eso lo unico que podrias hacer, es que el form, tubiera de action = "", pero no te lo aconsejo, y otra solucion, es que, pongas en tu pag php, header("location: pagina a la que redirecciona"); y a si, directamente despues de ejecutar el codigo php, te redireccionara a la pagina que pongas, por cierto, lo del header, ponlo al final, ya que si no, te redireccionara y no abra ejecutado todo el codigo php.

Un saludo
  #7 (permalink)  
Antiguo 22/07/2007, 16:43
 
Fecha de Ingreso: mayo-2007
Mensajes: 118
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Ayuda con Formulario - Urgente

Muchas gracias Francisco01 por tu rapidisma respuesta

He añadido el header y me da el siguiente warning

Warning: Cannot modify header information - headers already sent by (output started at c:\wamp\www\arjsystem\site\datos_empleo.php:7) in c:\wamp\www\arjsystem\site\datos_empleo.php on line 17

El script:

Código:
<?PHP
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if(isset($_POST['Contacto']) && !empty($_POST['Contacto']) &&
isset($_POST['Descripcion']) && !empty($_POST['Descripcion'])) 
{

	// Si entramos es que todo se ha realizado correctamente
	
	include("conect2.php");
	$link=Conectarse();
	
	// Con esta sentencia SQL insertaremos los datos en la base de datos
	mysql_query("INSERT INTO empleo (Oferta_Demanda,Tipo_Puesto,Persona_Contacto,Telefono,Movil,email,Anuncio)
	VALUES ('{$_POST['Oferta_Demanda']}','{$_POST['Puesto']}','{$_POST['Contacto']}','{$_POST['Telefono']}','{$_POST['Movil']}','{$_POST['email']}','{$_POST['Descripcion']}')",$link);
}

header("Location: http://localhost/ARJSystem/site/bolsa.php");
?>
Alguna solucion???
  #8 (permalink)  
Antiguo 22/07/2007, 16:52
 
Fecha de Ingreso: mayo-2007
Mensajes: 118
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Ayuda con Formulario - Urgente

Ya está resuelto !!!

En lugar del header he utilizado codigo javascript.

echo "<script language='javascript'>";
echo "location.href='http://localhost/ARJSystem/site/bolsa.php'";
echo "</script>";

Muchas gracias a todos por vuestra ayuda ;)
  #9 (permalink)  
Antiguo 22/07/2007, 20:17
Avatar de tutorialphp  
Fecha de Ingreso: junio-2007
Mensajes: 31
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Ayuda con Formulario - Urgente

Y qué hace esto en PHP?, debería ir en JS.

Saludos
  #10 (permalink)  
Antiguo 23/07/2007, 14:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años
Puntos: 2
Re: Ayuda con Formulario - Urgente

El problema te dio por que el header tiene que ir antes de cualquier texto o etiqueta html, para poner el header, no pongas ninguna etiqueta ni salida html.

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:13.