Bueno estoy empezando a realizar un sistema en mvc con html php ajax y postgres, pero no se mucho la utilizacion de ajax
el problema que tengo es que encontre un codigo en la web que me sirve para hacer una consulta en la base de datos y traer los resultados y mostrarlos en los campos de texto del formulario sin recargar la pagina, el ejemplo encontrado funciona, pero al adaptarlo al sistema no me hace la funcionalidad, resumiendo un poco me arroja el siguiente error por la consola web:
TypeError: respuesta is null
el depurador me marca la siguiente linea:
campo1.value=respuesta.getElementsByTagName("prime r_nombre_rp")[0].childNodes[0].data;
El codigo es el siguiente:
Código Javascript
:
Ver originalfunction nuevoAjax(){
var xmlhttp=false;
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E)
{
xmlhttp=false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp=new XMLHttpRequest();
}
return xmlhttp;
}
//_______________________________________________
function valida_campo_ci(url)
{
var form_consul_user_especf=document.form_consul_user_especf;
if (form_consul_user_especf.consul_ci.value==0)
{
alert("Ingrese la cedula del responsable patrimonial a buscar");
form_consul_user_especf.consul_ci.focus();
return false;
}else{
var campo1=document.getElementById("primer_nombre");
var cod=document.getElementById("consul_ci").value;
var ajax=nuevoAjax();
ajax.open("POST", "url", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("v="+cod);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
var respuesta=ajax.responseXML;
campo1.value=respuesta.getElementsByTagName("primer_nombre_rp")[0].childNodes[0].data;
}
}
}
}
la clase o modelo:
Código PHP:
Ver originalClass Usuarios extends Conectar{
private $ced=array();
public function get_usuarios_por_cedula()
{
$v=$_POST["v"];
parent::con();
$sql=sprintf
(
"select primer_nombre_rp from responsable_patrimonial where cedula_rp='$v'"
);
$res=pg_query(parent::con(),$sql);
if(pg_num_rows($res)==0)
{
echo 'No se encontro ningun resultado';
}else{
$reg=pg_fetch_assoc($res);
while($reg=pg_fetch_assoc($res))
{
$this->ced[]=$reg;
}
$this->ced;
$xml="<?php xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<primer_nombre_rp><![CDATA[$reg[0]]]></primer_nombre_rp>";
$xml.="</datos>";
header("Content-type: text/xml");
echo $xml;
return $this->ced;
}
}
}
vista:
Código PHP:
Ver original<form name="form_consul_user_especf" action="" method="post">
<div class="form-inline">
<!--Buscador-->
<div class="form-group">
<div class="input-group col-lg-12">
<input type="text" id="consul_ci" name="consul_ci" data-provide="typeahead" class="form-control"
placeholder="Ingrese codigo del bien">
<span class="input-group-btn">
<input type="hidden" name="grabar2" value="si" />
<button type="button" onClick="valida_campo_ci('<?php echo Conectar::ruta();?>controlador/cuenta_usuarioControlador.php');" class="btn btn-primary" type="button">Buscar</button>
</span>
</div>
</div>
<div class="form-group col-lg-4">
<div class="input-group" id="campo">
<input type="text" class="form-control" name="primer_nombre" id="primer_nombre" placeholder="Primer Nombre">
<span class="input-group-addon">
<img src="<?php echo Conectar::ruta();?>img/images_form/usuario.PNG">
</span>
</div>
</div>
</form>
Controlador:
Código PHP:
Ver original<?php
require_once("config.php");//archivo de conexion a la Base de datos
require_once("clases/clases_usuario.php"); //archivos de las clases
$obj=new Usuarios();
if(isset($_POST["grabar2"]) and
$_POST["grabar2"]=="si"){ $datos=$obj->get_usuarios_por_cedula();exit; }
require_once("vista/cuenta_usuario.phtml"); //muestra la vista
?>
Ayudenme Porfaaa