Hola compañeros, tengo un pequeño problema, intento llenar un arreglo con datos traídos de la bd. La manera en que intento hacerlo es con php y javascript mediante json. Pues bien en un principio utilizo dos select dependientes, en el primero cargo los estados de un país y al momento de cliquear un estado me carga otro select con las propiedades que existen en ese estado, para eso utilizo las siguientes funciónes JS y por su puesto cada una tiene un archivo .php desde donde se hace la consulta a la bd y se llenan los selects:
<script type="text/javascript">
$(document).ready(function(){
cargar_estados();
$("#estado").change(function(){carga_propiedades() ;});;
$("#propiedad").change(function(){carga_direccion( );});
$("#propiedad").attr("disabled",true);
$("#cap").attr("disabled",true);
$("#direc").attr("disabled",true);
$("#desc").attr("disabled",true);
$("#tlf1").attr("disabled",true);
$("#tlf2").attr("disabled",true);
$("#cor").attr("disabled",true);
$("#prec").attr("disabled",true);
});
function cargar_estados()
{
$.get("cargas_busquedas_propiedades/carga_estados.php?", function(resultado){
if(resultado == false)
{
alert("Error");
}
else
{
$('#estado').append(resultado);
}
});
}
function carga_propiedades()
{
var codigo = $("#estado").val();
$.get("cargas_busquedas_propiedades/carga_propiedad.php?", { codigo: codigo },
function(resultado)
{
if(resultado == false)
{
alert("Error");
}
else
{
$("#propiedad").attr("disabled",false);
document.getElementById("propiedad").options.lengt h=0;
$('#propiedad').append(resultado);
}
});
}
HASTA AQUÍ FUNCIONA CORRECTAMENTE
LO QUE DEBERÍA PASAR ES QUE LUEGO DE CARGAR LA PROPIEDAD, DEBERÍAN CARGARSE TODOS LOS DEMÁS DATOS DE LA MISMA MEDIANTE UN ARRAY. ACÁ LA FUNCIÓN:
function carga_datos()
{
var codigo = $("#propiedad").val();
$.post("cargas_busquedas_propiedades/carga_datos.php", {codigo:codigo},
function(data){
if(data.enco == "Si"){
$("#cap").val(data.capacidad);
$("#direc").val(data.direccion);
$("#desc").val(data.descripcion);
$("#tlf1").val(data.telefono1);
$("#tlf2").val(data.telefono2);
$("#cor").val(data.correo);
$("#prec").val(data.precio);
}
},"json");
}
</script>
ACÁ UN EJEMPLO DE UN CAMPO PARA CARGAR EN HTML
<p>
<label for="Capacidad/Personas">Capacidad/Personas</label>
<input name="cap" id="cap" type="text" />
</p>
Y ACÁ EL CÓDIGO DEL ARCHIVO carga_datos.php que se llama en la última función que lleva el mismo nombre:
<?php
$user= 'root';
$pass= '';
$server= 'localhost';
$db= 'caribia';
$codigo="";
if(isset($_POST['codigo'])){ $codigo = $_POST['codigo']; }
$arreglo="";
if(isset($_POST['arreglo'])){ $arreglo = $_POST['arreglo']; }
$conexion = mysqli_connect($server,$user,$pass,$db);
$resultado = mysqli_query($conexion,"SELECT * FROM crb_propiedad WHERE codigo_propiedad = $codigo");
while($propiedad = mysqli_fetch_array ($resultado)){
$arreglo = array();
$arreglo['enco'] = "No";
if($propiedad != false){
$arreglo['enco'] = "Si";
$arreglo['codigo'] = $propiedad ['codigo'];
$arreglo['direccion'] = $propiedad["direccion"];
$arreglo['capacidad'] = $propiedad ['capacidad'];
$arreglo['descripcion'] = $propiedad["descripcion"];
$arreglo['telefono1'] = $propiedad["telefono1"];
$arreglo['telefono2'] = $propiedad["telefono2"];
$arreglo['correo'] = $propiedad["correo"];
$arreglo['precio'] = $propiedad ["precio"];
}
}
echo json_encode($arreglo);
?>
CUANDO CORRO ESTE ARCHIVO ME DA UN WARNING
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\caribia\intranet\cargas_busquedas_prop iedades\carga_datos.php on line 15
POR SUPUESTO NO CARGA LOS DEMÁS DATOS, AGRADECERÍA SU AYUDA, GRACIAS DE ANTEMANO.