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!!!!