Hola a todos de nuevo.
La idea por la cuál aconseje iframe era para obtener una solución que fuese elegante y sencilla a la vez sin llegar a meterse con AJAX (aunque es mucho mejor), pero para solucionar finalmente el caso comparto con
plutoelias dos scripts que hice para llevar a cabo dicha función, hay va:
Para probar la funcionalidad de estos scripts copia y pega el primer código en un documento que se llame pagina.html (o como quieras) y el segundo deberá llamarse frame.php estrictamente.
pagina.html:
Código HTML:
<html>
<script type="text/javascript">
function CambiarURLFrame(Cedula){
document.getElementById('iframe').src= 'frame.php?cedula=' + Cedula;
}
</script>
<iframe id="iframe" src="frame.php" width="0" height="0" frameborder="0"></iframe>
<br />
<input id="cedula" type="text" value="" onblur="CambiarURLFrame(this.value);" />
<input id="nombre" type="text" value="" />
<input id="otro" type="text" value="Esto no cambiará" />
<!-- A lo mejor te faltó especificar el value en nulo -->
</html>
frame.php:
Código HTML:
<html>
<?php
if(
isset($_GET['cedula']) &&
$_GET['cedula'] != null
){
/*
* Aquí haces el resto de script, asegúrate de validar bien
* la cédula con la función mysql_real_escape_string() de php
* para evitar todo tipo de injección posible.
*/
?>
<script type="text/javascript">
window.parent.document.getElementById('nombre').value = '<?php echo $_GET['cedula']; ?>'; // Aquí haces el echo del nombre con php, puse la cédula para que veas que funciona.
</script>
<?php
}
?>
</html>
Aclaraciones:
1 - No era necesario refrescar el frame con otro método de Javascript, ya con cambiar el src, este se refresca automáticamente.
2 - Probablemente había que aclarar el atributo value en el campo cédula.
3 - Estos scripts NO HACEN una consulta a la BD poniendo en nombre en dicho campo, hacen algo parecido, solo lo comparto para que veas como funciona y modifiques cada archivo correctamente.
Probado en Chrome, Firefox e Internet Explorer 9.
Saludos