por erml_ » 2007-06-08 11:00 @500
Saludos .
Si lo he intentado, poniendo en una funcion de JS : document.nombre_formulario,nombre_elemento.focus()
y llamandola desde html con el evento onload, pero no me funciona. Creo que se debe a que el formulario lo despliego en la pagina usando una funcion en PHP que se encuentra en un fichero adicional, y llamando a dicha funcion por medio del HTTPD-request .
Esta mas o menos asi :
Fomulario_principal :
<body>
<select id="opcion_seleccionada" onchance="pintar_formulario(this.value)">
<option value="1"> Datos de Mamá</option>
<option value="1"> Datos del Hijo</option>
</select>
<div id="formulario_resultado"> </div>
</body>
Funcion JS para llamar a pintar el formulario usando el objeto HTTPD_Request:
function pintar_formulario(valor_seleccionado) {
_objetus=http_request();
_values_send='valor_seleccionado';
_URL_=URL+'?';
if (metodo=='GET') { _objetus.open("GET",_URL_+"&"+_values_send,true); }
else {
_objetus.open("POST",_URL_,true);
_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
_objetus.send('&'+_values_send);
}
_objetus.onreadystatechange=function() {
if (_objetus.readyState==1) {
_target.innerHTML="Procesando info.......";
}
else if (_objetus.readyState==4) {
if(_objetus.status==200) {
document.getElementById(_target).innerHTML=_objetus.responseText;
}
else {
_target.innerHTML = "Error: "._objetus.status;
}
}
}
if (metodo=='GET') { _objetus.send(null); }
}.
Pintando formularios n PHP:
<?php
$opcion=$_GET['valor_seleccionado'];
if ($opcion==1) { capturar_datos_1 ; }
else { capturar_datos_2; }
function capturar_datos_1 ()
{ echo "<table width="100%" border="1">";
echo "<th><b>Datos generales de la Madre.</b></th>";
echo " <tr><td ><input type="text" id="nombre"></td></tr>";
}
function capturar_datos_2 ()
{ echo "<table width="100%" border="1">";
echo" <th ><b>Datos generales del recien nacido.</b></th>";
echo " <tr> <td><input type="text" id="talla"></td>";
echo " <td><input type="text" id="peso"></td>";
echo " <td><input type="text" id="hora_nac"></td> </tr>";
}
?>
Bueno mas o menos es asi, todo sale bien, excepto que el formulario nuevo se pinta dentro del div llamado 'formulario_resultado', pero el foco no lo obtiene la primer caja de texto de ese nuevo formulario, se pierde.
Hay alguna manera de que lo pueda asignar a la primer caja de texto, sin utilizar JavaScript???
Mil gracias por la ayuda.