![]() |
Validar form. generado por Ajax desde ventana Padre Buenas a todos. Aqui nuevamente buscando solución a algo que me ha quedado grande de nuevo y como siempre, esperando que algun alma bondadosa se apiade de mi.. :si: El tema es que tengo un formulario el cual ingreso un dato X. Con la propiedad onchange, llamo a una funcion ajax que me carga el resultado dentro de un div, y el resultado es un formulario que, si coincide el valor del cuadro con una consulta, se completa automáticamente con los datos existente, si no, muestra el form. en blanco. Todo bien hasta aca, salvo cuando quiero verificar que el formulario se haya completado como corresponda, ya que no puedo crear una funcion javascript que me lo permita. Alguien se le ocurre que hacer en estos casos??? Salud!! y porfa.. apiadense de mi!!!:neurotico |
Respuesta: Validar form. generado por Ajax desde ventana Padre Hola! Resulta que tengo el mismo problema... tengo lo siguiente, de una lista de selección en la pagina1.php, el usuario seleccionará un dato a modificar y por medio del ajax.php, me carga un formulario con todos los datos asociados a la BD que tenga el dato seleccionado, al momento de retornarme los datos desde el ajax, puedo tomarlos y validarlos y generar un mensaje de error de una manera simple, pero deseo que dicho error me lo resalte debajo de cada campo en el que se falla, sin salir del formulario, cosa que no logro. en codigo tengo algo así: mecliente.php - es la pagina de donde se llamará el ajax <?php session_start(); $clie=$_SESSION['cliente']; $grup=$_SESSION['grupo']; $cont=$_SESSION['contrato']; $campo=$_SESSION['campop']; $obj= new interfaz(); $obj->amgsup($dom1,$clie,$cont,$campo,$_SESSION['login']); $db1= new DBase(); ?> <html> <head> <title>.: Modificar Cliente :.</title> <script language="JavaScript" type="text/JavaScript"> function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) { if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; } } else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); } MM_reloadPage(true); allsub = false function traerInfo(tipo,cod) { var http = null; var strcadena; var stHtml; if(window.XMLHttpRequest) http = new XMLHttpRequest(); else if (window.ActiveXObject) http = new ActiveXObject("Microsoft.XMLHTTP"); http.onreadystatechange = function() { if((http.readyState == 4) && (http.status == 200)) { strcadena = http.responseText; if(tipo=="cl_nit") { cliente.innerHTML = strcadena; /*alert(strcadena);*/ } } } if (tipo=="cl_nit") {/*alert(strcadena);*/ http.open('GET', 'ajax2.php?cl_nit=' + cod, true); http.send(""); } } </script> <link href="ARCHIVOS/styles.css" rel="stylesheet" type="text/css"> </head> <body> <? function mensaje1() { ?> <SCRIPT LANGUAGE="JavaScript"> alert("Se han almacenado los datos!"); </SCRIPT> <? } // Comprobar errores $error = false; if (isset($modi)) { // Dirección if (trim($cl_direccion) == "") { $errores["cl_direccion"] = "Por favor introduzca la Dirección del Cliente"; $error = true; } else $errores["cl_direccion"] = ""; } if (isset($modi) && $error==false) { $psql=$db1->ejecutar("UPDATE `nominaciones`.`cliente` SET `cl_razon`='$cl_razon', `cl_direccion`='$cl_direccion', `cl_idciudad`='$ciud', `cl_reprelegal`='$cl_reprelegal', `cl_telefono`='$cl_telefono', `cl_mail`='$cl_mail', `cl_fechacreacion`='$cl_fechacreacion' WHERE `cl_nit`='$cl_nit'"); COMMIT; mensaje1(); } else { ?> <p align="center" class="titulo">Modificar Cliente</p> <form name="forma" method="get" onSubmit="return checkSubmit()" ACTION="<?php echo $php_self?>"> <table width="350" align="center" height="200" border=0 cellpadding=1 cellspacing=4 background="ARCHIVOS/cuadro.jpg"> <tr> <td bordercolor="#FFDB70" class="texto"><p>Cliente:<B> <select name="cl_nit" onChange="traerInfo(this.name,this.value);" class="texto"> <option value="" selected>Seleccione</option> <? $rds4 = $db->ejecutar("select * from `nominaciones`.`cliente` order by `cl_razon` asc"); while($row = mysql_fetch_array($rds4)) { ?> <option value="<? echo $row["cl_nit"];?>"><? echo $row["cl_razon"];?></option> <? } //mysql_free_result($rds4); ?> </select> </B></p> <B> <div align="left"><span id="cliente" name="cliente"></span> </div> <!-- <select name="cl_nit" onChange="traerInfo(this.name,this.value);"> <option value="" selected>Seleccione...</option> --> </td> </tr> <tr> <td bordercolor="#FED83D" align="center"> <INPUT name="modi" class="texto" type=submit value="Modificar" onClick="validar();"> </td> </tr> </table> </form> <?PHP if ($errores["cl_direccion"] != "") print ("<BR><SPAN CLASS='red'>" . $errores["cl_direccion"] . "</SPAN>"); } ?> </BODY> </HTML> ajax2.php <? $db1= new DBase(); // Es para traer Datos Clientes if(isset($_GET['cl_nit'])) { $rds1 = $db->ejecutar("select * from `cliente` WHERE `cl_nit` = '".$_GET['cl_nit']."'"); while($row = mysql_fetch_array($rds1)) { $cl_nit = $row["cl_nit"]; $cl_direccion = $row["cl_direccion"]; ?> <table width="721" align="center"> <tr> <td height="40" bgcolor="#ffffff" bordercolor="#ffffff" class="texto" colspan="4"><strong>Datos del Cliente </strong> </td> </tr> <tr> <td class="texto">NIT:</td> <td width="300"><input type="text" class="texto" readonly name="cl_nit" size="20" maxlength="20" value="<? echo $cl_nit ?>" /></td> </tr> <tr> <td bordercolor="#ffffff" class="texto" ><p>Dirección:</p></td> <td bordercolor="#ffffff"><input type="text" class="texto" name="cl_direccion" size="50" maxlength="30" value="<? echo $cl_direccion ?>" onchange="javascript:this.value=this.value.toUpper Case();" /> </td> </tr> <? }} // ---------------------------------------------------------------Fin Clientes ?> </table> Una ayudita por favor!!!! :'( |
Respuesta: Validar form. generado por Ajax desde ventana Padre he agregado una nueva modificación al código anterior, el cual hace que me mantenga el formulario con el dato seleccionado al momento de generarse error, este es: <script> cl_nit_value = <? echo $cl_nit?>; traerInfo('cl_nit',cl_nit_value); </script> lo puse en mecliente.php, en la línea después de: </table> </form> y antes de: <?PHP if ($errores["cl_direccion"] != "") print ("<BR><SPAN CLASS='red'>" . $errores["cl_direccion"] . "</SPAN>"); } ?> ahí vamos, por partes! |
| La zona horaria es GMT -6. Ahora son las 11:16. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.