Foros del Web » Programando para Internet » Javascript »

al volver atras no funciona el envio de datos

Estas en el tema de al volver atras no funciona el envio de datos en el foro de Javascript en Foros del Web. Me traigo este post aqui desde base de datos para ver si me podeis ayudar. Estoy algo verde, asi que no seais muy duros conmigo. ...
  #1 (permalink)  
Antiguo 16/11/2010, 23:17
 
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 18
Antigüedad: 14 años, 9 meses
Puntos: 0
al volver atras no funciona el envio de datos

Me traigo este post aqui desde base de datos para ver si me podeis ayudar. Estoy algo verde, asi que no seais muy duros conmigo.
Tengo un form con campos obligatorios que al no ser rellenados te pide que vuelvas atras desde tu navegador y los rellene para hacer el INSERT en bd. Pero cuando esto ocurre NO se ingresan. Por el contrario si los rellenas bien la 1ª vez SI ingresan.
Aqui les dejo el code por si me podeis decir algo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<html xmlns="http://www.w3.org/1999/xhtml"/>
<head>
<link rel="stylesheet" type="text/css" href="estilosdos.css" media="all" />
<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-1"/>

<body>
<?php
include ("conecta.php");
//Estos son los campos obligatorios
$id = $_POST["id"];
$pagina = $_POST["pagina"];
$contratante = $_POST["contratante"];
$empresa = $_POST["empresa"];
$acepto = $_POST["acepto"];
//Aqui chequeo que no esten vacios
$required_fields = array('contratante', 'empresa', 'id');
foreach ($required_fields as $required_field) {
if (empty($$required_field) || $$required_field == '') {
echo "<center>";
//Aqui les pido que vuelvan y rellenes campos vacios. Y cuando regresan y rellenan todos los campos por 2ª vez no se realiza el INSERT ¿Porque? Este es el fallo
echo "Por favor, rellena campo (" .$required_field.")<label class='asterisco'>*</label>" ;
echo "<br/>";
echo "</center>";
//Esto es porque con anterioridad ya han subido a bd otros datos y si no completan este form, que los borre
$borrar = mysql_query ("DELETE FROM anuncios WHERE acepto ='' OR contratante='' OR empresa=''");
}
}
//Aqui se envian los datos si se han rellenado todos exitosamente
$completar = mysql_query("UPDATE anuncios SET acepto='$acepto', pagina='$pagina', contratante='$contratante', empresa='$empresa' WHERE id='$id'")or die('Error en aceptado.php');
$borrar = mysql_query ("DELETE FROM anuncios WHERE acepto ='no'");
$intro = mysql_query ("SELECT * FROM anuncios WHERE id='$id'");
//Y aqui les muestro los datos al contratante
if ($row = mysql_fetch_array($intro)){
echo "<center> \n";
echo "<h2>Estos son sus datos</h2><br/> \n";
echo date("d/m/Y");
echo "<table class='c'> \n";
echo "<tr> \n";
echo "<td><b>id</b></td> \n";
echo "<td><b>fecha</b></td> \n";
echo "<td><b>pagina</b></td> \n";
echo "<td><b>contratante</b></td> \n";
echo "<td><b>empresa</b></td> \n";
echo "<td><b>acepto</b></td> \n";
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td class='in'>".$row["id"]."</td> \n";
echo "<td class='in'>".$row["fecha"]."</td> \n";
echo "<td class='in'>".$row["pagina"]."</td> \n";
echo "<td class='in'>".$row["contratante"]."</td> \n";
echo "<td class='in'>".$row["empresa"]."</td> \n";
echo "<td class='in'>".$row["acepto"]."</td> \n";
echo "</tr> \n";
echo "</center> \n";
}
while ($row = mysql_fetch_array($intro));
echo "</table> \n";
}
else {
echo "<center>";
echo "<h3>¡ Por favor regrese y confirme !<h3>";
echo "</center>";
echo "</div> \n";
}

?>

</body>
</html>

¿Como lo veis?
Gracias
  #2 (permalink)  
Antiguo 17/11/2010, 04:15
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Respuesta: al volver atras no funciona el envio de datos

haz un script de java con una funcion la cual revisara que los campos que le indiques estan vacios o tienen contenido, aora mismo estoy en el trabajo, cuando esta tarde me conecto te pongo mi script
  #3 (permalink)  
Antiguo 17/11/2010, 10:44
 
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 18
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: al volver atras no funciona el envio de datos

De momento estoy intentando aprender php. De javascript no tengo ni idea y de Java pues por debajo del 0 patatero.
Pero si me lo haces te lo agradezco.
  #4 (permalink)  
Antiguo 17/11/2010, 11:32
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Respuesta: al volver atras no funciona el envio de datos

mira, este script lo que hace es recojer las cadenas de texto de los campos y recorrerlos caracter a caracter para dar de resultado la longitud de la cadena de texto, si la longitud es 0 te salta una alerta y no envia, si todos los campos especificados en el script su longitud es superior a 0 (el valor se puede cambiar por el que quieras) envia el formulario. alguna duda pregunta.
Código HTML:
Ver original
  1. <script languaje="JavaScript">
  2. function valida(){
  3. if(document.nombreformulario.nombre.value.length==0){
  4. alert("El campo Nombre no puede estar vacio");
  5. }
  6. else{
  7. if(document.nombreformulario.apellidos.value.length==0){
  8. alert("El campo Apellidos no puede estar vacio");
  9. }
  10. else{
  11. if(document.nombreformulario.poblacion.value.length==0){
  12. alert("El campo Poblapcion no puede estar vacio")
  13. }
  14. else{
  15. document.nombreformulario.submit();
  16. }
  17. }
  18. }
  19. }
  20.  
  21.  
  22. <form name="nombreformulario" method="POST" action="paginaquerecibelosdatos.php" enctype="multipart/form-data">
  23.  
  24. Nombre <input name="nombre"><br>
  25. Apellidos <input name="apellidos"><br>
  26. Poblaci&oacute;n <input name="poblacion"><br>
  27. Titulaci&oacute;n <select name="titulacion"><br>
  28. <option value="licenciado">Licenciado</option>
  29. <option value="auxiliar">Auxiliar</option>
  30. <option value="indiferente">Indiferente</option>
  31. Texto libre <textarea rows="15" cols="40" name="descripcion"></textarea><br>
  32. <input type="button" value="Enviar" onClick="valida()">
  33. </form>
PD: tambien te dejo el codigo html del formulario correespondiente al scriipt
  #5 (permalink)  
Antiguo 17/11/2010, 12:54
 
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 18
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: al volver atras no funciona el envio de datos

¿Funciona tambien con los input radio? o ¿En value.length==0, debo poner value.length==CHECKED?
Y por seguridad ¿se puede compaginar con el que tengo en php?
Osea poner:
$required_fields = array('contratante', 'empresa', 'id');
foreach ($required_fields as $required_field) {
if (empty($$required_field) || $$required_field == '') {
<script languaje="JavaScript">//tu script
  #6 (permalink)  
Antiguo 17/11/2010, 13:00
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: al volver atras no funciona el envio de datos

Cita:
Iniciado por fixius Ver Mensaje
¿Funciona tambien con los input radio? o ¿En value.length==0, debo poner value.length==CHECKED?
para ver si esta chequeado document.form.campo.checked == true
  #7 (permalink)  
Antiguo 17/11/2010, 23:43
 
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 18
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: al volver atras no funciona el envio de datos

Ok, Gracias chicos, me pongo manos a la obra.
PD.: Aprendo mas por deduccion viendo el script, que si me lo hubiseis explicado.
  #8 (permalink)  
Antiguo 18/11/2010, 13:39
 
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 18
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: al volver atras no funciona el envio de datos

Sigo teniendo problemas con el input radio.
Cita:
Iniciado por Death_Empire Ver Mensaje
para ver si esta chequeado document.form.campo.checked == true
Yo lo tengo checkeado en "NO", ahi es cuando debe salir la "alert" para que confirme el "SI". He probado con "false" y con ".acepto.value==("no") y no sale la alerta. ¿Como es?
Gracias
  #9 (permalink)  
Antiguo 18/11/2010, 22:48
 
Fecha de Ingreso: julio-2009
Ubicación: Sevilla
Mensajes: 18
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: al volver atras no funciona el envio de datos

Ok, solucionao.
if(document.condiciones.acepto[1].checked == true) { //Este es por tener checkeado la 2ª opcion, si fuera la 1ª.acepto [0]
alert("Si no aceptas las condiciones ¡Adios!");
document.condiciones.acepto[1].checked;
return 0;
}

Última edición por fixius; 18/11/2010 a las 22:54
  #10 (permalink)  
Antiguo 18/11/2010, 23:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Javascript

Etiquetas: atras, envio, volver
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 09:59.