Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Javascript (http://www.forosdelweb.com/f13/)
-   -   Validar form. generado por Ajax desde ventana Padre (http://www.forosdelweb.com/f13/validar-form-generado-por-ajax-desde-ventana-padre-569150/)

zick 25/03/2008 14:19

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

cccardenaso 10/06/2008 14:33

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&oacute;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&oacute;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!!!! :'(

cccardenaso 10/06/2008 14:51

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.