saludos compañeros, estoy inciando con ajax y fijense e logrado hacer una consulta retornar un valor y mostrarlo en un input text, pero ahora quiero cargar con la info varios text. ejemplo si paso por parametro el ID de un registro y este registro tiene nombre,cedula y telefono quiero con los text se actualicen con la informacion que me retorna.
les muestro que tengo:
registro.php // aqui solicito la informacion que identifica el registro y llamo a una funcion en javascript
Código HTML:
<table class="table-bordered" width="100%" cellspacing="3" cellpadding="3">
<tr>
<td colspan="2" ><div align="center">Registro de Contribuyentes</div></td>
</tr>
<tr>
<td width="474" ><select name="tipo" id="tipo" class="select_rif">
<option selected value="J">J</option>
<option value="V">V</option>
<option value="G">G</option>
<option value="P">P</option>
<option value="E">E</option>
</select>
<input name="rif" type="text" id="rif" onKeyPress="return teclear(event,3)" maxlength="9" placeholder="Rif:120001113"></td>
<td width="443" ><div align="left"><input type="button" name="button" id="button" value="Busca Contribuyente" onClick='carga_contrato(this.rif)'></div></td>
</tr>
</table>
ahi tipeo el rif y lo paso a carga_contrato()
Código:
function carga_contrato(rif_contri)
{
var ajax=nuevoAjax();
var selectOrigen=document.getElementById('tipo');
// Obtengo la opcion que el usuario selecciono
var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
var rif=opcionSeleccionada+document.getElementById('rif').value;//contruyo el rif
// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
var ajax=nuevoAjax();
ajax.open("GET", "funcion_ajax.php?rif="+rif+"&sw=1", true);// va uno en sw por que el uno sera para resolver esta funcion de verificar contribuyente
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
var resultado=ajax.responseText;
if(resultado=="1"){
var ajax2=nuevoAjax();
ajax2.open("GET", "funcion_ajax.php?rif="+rif+"&sw=2", true);//paso 2 por esta me retornara los datos del contribuyente y su representante legal
ajax2.onreadystatechange=function()
{
div_oculto=document.getElementById('div_oculto');
div_oculto.style.visibility = "visible";
div_oculto.innerHTML=ajax2.responseText;
}
ajax2.send(null);
}else{
alert("El contribuyente no existe");
}
}
}
ajax.send(null);
}
div_oculto contiene todos los input text
el php funcion_ajax es este
Código PHP:
<?php
session_start();
if ($_POST or $_GET or isset( $_SERVER['HTTP_REFERER'] )) {
$refer = strtolower( $_SERVER['HTTP_REFERER'] );
if(substr_count($refer, 'localhost/sia')==1){
if($_GET['sw']=="1")//registro de contrato
{
$rif_ci=$_GET['rif'];
include_once 'conexion.php'; conecta_sia();
$sql="select rif_ci from rif where rif_ci='$rif_ci'";
$consulta=mysql_query($sql) or die(mysql_error());
if($res=mysql_fetch_object($consulta))
{ echo "1"; }else{ echo "0"; }
cerrar_conexion();
}else{
if($_GET['sw']=="2")
{
// voy a devolver los campos de contribuyente y representante legal, nombre,cedula,telefono
$rif_ci=$_GET['rif'];
include_once 'conexion.php'; conecta_sia();
$sql="select nombre,rif_ci,telefono,nombre_representante,cedula_representante,telefono_rep from rif where rif_ci='$rif_ci'";
$consulta=mysql_query($sql) or die(mysql_error());
if($res=mysql_fetch_object($consulta))
{
// pinto todos los edit
// Comienzo a imprimir el select
$nombre=$res->nombre;
echo "<input name='nombre_contribuyente' type='text' class='edit_nombre' id='nombre_contribuyente' value='".$nombre."' readonly='readonly' placeholder='Nombre o Razon Social' >";
echo "<input name='rif_reg' type='text' id='rif_reg' readonly='readonly' value='".$res->rif_ci."' >";
echo "<input name='telefono_contribuyente' type='text' id='telefono_contribuyente' readonly='readonly' placeholder='Teléfono' value='".$res->telefono."' >";
echo "<input name='nombre_rep' type='text' class='edit_nombre' id='nombre_rep' readonly='readonly' placeholder='Nombre y Apellido' value='".$res->nombre_representante."' >";
echo "<input name='cedula_rep' type='text' id='cedula_rep' readonly='readonly' placeholder='Cédula:17111222' value='".$res->cedula_representante."' >";
echo "<input name='telefono_rep' type='text' id='telefono_rep' readonly='readonly' placeholder='Teléfono:04160001122' value='".$res->telefono_rep."' >";
}else{
echo "0";
}
cerrar_conexion();
}
}
}else{
echo ("<script language='javascript'>
alert('Esta pagina es privada, no tiene los permisos necesarios')
var pagina='../index.php'
location.href=pagina</script>");
}
}else{
echo ("<script language='javascript'>
alert('Esta pagina es privada, no tiene los permisos necesarios')
var pagina='../index.php'
location.href=pagina</script>");
} ?>
si hay algo en el ajax que optimizar se agradece todo lo que e logrado a sido viendo ejemplos y tratando de imitar el funcionamiento no e trabajado con ajax antes.