AJAX - Ayuda con Ajax soy novato

   
Vista:

Ayuda con Ajax soy novato

Publicado por Ricardo J. Rios R. (3 intervenciones) el 01/12/2008 22:08:28
Hola a todos como estan, gracias por leer mi nota, necesito desde un select (dropdownlist) de un formulario hacer una consulta en php, es decir en el select que se seleccione una cedula de identidad, y que por medio de ajax muestre a su lado en un input el nombre de la persona con esa cedula, tengo los siguientes codigos:

-----------------------------------------------------------------------------------------------------------------------------------
PARTE DE FORMULARIO PHP
-----------------------------------------------------------------------------------------------------------------------------------

<p>
<label><strong><br />
Responsable: C.I.
<select name="ci_responsable" id="ci_responsable" onchange="ajaxFunction();">
<option>Seleccionar Responsable por C.I.</option>
<?php
$link2=mysql_connect("localhost","root","123");
mysql_select_db("activos");
$sql2="SELECT `cedula` FROM `responsable`";
$rs2=mysql_query($sql2);
while($row2=mysql_fetch_array($rs2))
{
if (isset ($_REQUEST['c12']) && $_REQUEST['c12'] == $row['cedula'])
$activo2 = ' selected="selected"';
else
$activo2 = '';

echo <<<FIN_HTML
<option value="{$row2['cedula']}"{$activo}>{$row2['cedula']}</option>
FIN_HTML;
}
?>
</select>
</strong>
<script>
function ajaxFunction()
{
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('nombre_responsable');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var ajaxRequest;
var ci_responsable = document.getElementById('ci_responsable').value;
ajaxRequest.open("GET", "ci_responsable.php", true);
ajaxRequest.send(null);
}

</script>

----------------------------------------------------------------------------------------------------------------------------------
CI_RESPONSABLE.PHP
-----------------------------------------------------------------------------------------------------------------------------------
<?php
$ci_responsable = $_GET['ci_responsable'];
$ci_responsable = mysql_real_escape_string($ci_responsable);
$server="localhost";
$user="root";
$password="123";
$db="activos";
$conectar=mysql_connect($server,$user,$password);
if (!$conectar)
{
die('No se pudo conectar porque : ' . mysql_error());
}
$db_selected = mysql_select_db($db,$conectar);
if (!$db_selected)
{
die ("Error seleccionando la tabla de datos porque : " . mysql_error());
}
$query = "SELECT `nombre` FROM `responsable` WHERE `cedula` = '$ci_responsable'";
$qry_result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($qry_result)){
$display_string .= "$row[nombre]";

?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Ajax soy novato

Publicado por webness (20 intervenciones) el 10/12/2008 22:16:06
Hola.

para ello simplemente en el codigo php haces esto:
echo $display_string;
porque el atributo de ajax responserText lo que hace es devolver el codigo html generado del lado del servidor, pero en tu caso no es asi, solo necesitas es un valor, por lo tanto lo imprimes para que quede almacenado en responseText, de lo contrario responseText es nula.

el lado de la funcion javascript que implementa el ajax haces esto:

ajaxDisplay.value = ajaxRequest.responseText;

innerHTML lo que hace es obtener o establecer el texto html contenido entre un par de etiqutas, ejemplo: <div>_xxxx_</div> innerHTML = _xxxx_

pero en tu caso necesitas es actualzar el aatributo value de caja de texto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Ajax soy novato

Publicado por Ricardo J. Rios R. (3 intervenciones) el 17/12/2008 17:38:15
Hay q poner alguna otra funcion u otro script para actualizar dicho campo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Ajax soy novato

Publicado por webness (20 intervenciones) el 26/12/2008 22:09:13
No, simplemente en el metodo javascript donde hiciste el ajax.open(____);
en ese metodo pones lo que tienes que hacer. obviamente en el lugar donde se colocan las acciones cuando el procesamiento del lado del servidor ha terminado.

if(ajax.readystate ==4)
{
document.getElementById("tu_caja_de_texto").value = ajax.responseText;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar