Foros del Web » Programando para Internet » PHP »

PHP inserta 2 veces en Mysql por form + validación

Estas en el tema de PHP inserta 2 veces en Mysql por form + validación en el foro de PHP en Foros del Web. Estimados : Coloqué en el <head> un javascript sencillo de validación que no hubiese campos obligatorios vacíos. <head> <SCRIPT LANGUAGE="JavaScript"> <!-- Begin function verify() { ...
  #1 (permalink)  
Antiguo 28/03/2008, 22:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 0
PHP inserta 2 veces en Mysql por form + validación

Estimados :
Coloqué en el <head> un javascript sencillo de validación que no hubiese campos obligatorios vacíos.

<head>
<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
function verify() {
var themessage = "Necesita completar los siguientes campos: ";
if (document.nueva_comuna.comuna.value=="") {
themessage = themessage + " -> Comuna";
}
//alert if fields are empty and cancel form submit
if (themessage == "Necesita completar los siguientes campos: ") {
document.nueva_comuna.submit();
}
else {
alert(themessage);
return false;
}
}
// End -->
</script>
</head>

y en el <form> :
<form action="comuna_recibe_new.php" method="post" name="nueva_comuna" onSubmit="return verify(this)">

<table width="70%" border="0" align="center" cellspacing="5" class="borde">
<tr class="texto_norm">
<td><strong>Comuna :</strong></td>
<td><input name="comuna" type="text" size="50" maxlength="50" />
(*) </td>
</tr>
<tr class="texto_norm">
<td><strong>Comentario : (max. 150)</strong></td>
<td><textarea name="coment_comuna" cols="50" rows="3" class="texto_norm"></textarea></td>
</tr>
<tr class="texto_norm">
<td>&nbsp;</td>
<td>
<input type="submit" name="envia" value="Enviar" />
&nbsp;
<input name="borrar" type="reset" value="Borrar" /> </td>
</tr>
</table>
</form>


el tema es que desde que incluí la validación, me inserta dos veces el registro en Mysql.

Alguien sabrá?
  #2 (permalink)  
Antiguo 28/03/2008, 22:50
Avatar de RollerSky  
Fecha de Ingreso: marzo-2008
Mensajes: 123
Antigüedad: 16 años, 1 mes
Puntos: 8
Re: PHP inserta 2 veces en Mysql por form + validación

Coloca un poco tu codigo php porque el HTML parece estar bien. puede ser que se esta enciclanbdo o hace un refres la pagina que hace la insercion

Salu2!
  #3 (permalink)  
Antiguo 28/03/2008, 22:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: PHP inserta 2 veces en Mysql por form + validación

<?php
$nueva_comuna = strtoupper($_POST['comuna']);
$nuevo_comenta = $_POST['coment_comuna'];
?>
<?php require_once('../Connections/inicio.php'); ?>
<?php
mysql_select_db($database_inicio, $inicio);
$query_nuevo_comuna = "SELECT * FROM comuna";
$nuevo_comuna = mysql_query($query_nuevo_comuna, $inicio) or die(mysql_error());
$row_nuevo_comuna = mysql_fetch_assoc($nuevo_comuna);
$totalRows_nuevo_comuna = mysql_num_rows($nuevo_comuna);

mysql_query("INSERT INTO comuna (id, nom_comuna, coment_comuna)
VALUES ('', '$nueva_comuna', '$nuevo_comenta')");

echo "COMUNA INGRESADA";
}
mysql_free_result($nuevo_comuna);
?>

El tema es que el PHP funciona bien. El problema sucede cuando coloqué la validación Javascript.
Gracias por tu interés.
  #4 (permalink)  
Antiguo 02/06/2008, 10:42
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: PHP inserta 2 veces en Mysql por form + validación

waaaaaa, yo tambien tengo el mismo problema, al tratar de validar un formulario, este envia 2 veces la misma información, 2 inserta 2 veces un registro, luego de la inserción tengo un header("Location: index.php"); pero no entiendo, por que entra 2 veces por ese bucle, si ya deberia salir totalmente de la pagina inicial :S, espero ayuden, gracias !!!
  #5 (permalink)  
Antiguo 02/06/2008, 10:56
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: PHP inserta 2 veces en Mysql por form + validación

jejeje, acabo de resolver... mi dilema XD mi problema era el enviar un f.submit() al final de la funcion, oie pmalbec, agrega el codigo completo del html y php, el nombre de los ficheros, aver si te puedo ayudar
  #6 (permalink)  
Antiguo 02/06/2008, 11:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: PHP inserta 2 veces en Mysql por form + validación

esto es tema de Javascript....

cuando en el evento submit usamos una funcion cualquiera... esta debe devolver true o false.... y NO... llamar al metodo submit() de la FORM .... este es un error comun, simplemente.... devuelve true.... en ves de enviar la forma e ira genial...!!!

suerte
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 02/06/2008, 15:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: PHP inserta 2 veces en Mysql por form + validación

Hector :

Lo solucioné una vez que comenté la parte del javascript

"document.nueva_comuna.submit();"

Ya que, cuando validaba todo, estaba haciendo y enviando 2 veces el submit.

Gracias.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:01.