Buenas, como ya indica el título, estoy viendo esto de Ajax. Mediante esta web me tope con una librería PHP llamada Xajax, para utilizar esta técnica (Ajax).
Encontré un tutorial que hablaba de una lista de Provincias y otra de Localidades de esas provincias.
En base a ese tuto, quise hacer algo parecido, pero con una lista de Marcas de autos y otra con los respectivos modelos. En base a información que tengo en un bd.
Por empezar el codigo php es el siguiente:
form_generate.php Código PHP:
require ('includes/php/xajax/xajax.inc.php');
//instanciamos el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
$xajax->printJavascript('includes/php/xajax/');
function selectMarcas(){
$query = "SELECT m.idMarca, m.Marca FROM Marcas m";
$res = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($res)){
$idMarca = $row[0];
$nomMarca = $row[1];
echo "<option value=$idMarca>".$nomMarca."</option>";
}
}
function selectMod($id){
$respuesta = new xajaxResponse('ISO-8859-1');
$query = "SELECT m.Modelo FROM Modelos m WHERE m.idMarca = $id";
$res = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($res)){
$select .= "<option>".$row[0]."</option>";
}
$respuesta->addAssign("mod","innerHTML",$select);
return $respuesta;
}
$xajax->registerFunction("selectMod");
$xajax->processRequests();
?>
El HTML esta así:
busc_form.php
Código HTML:
Ver original<?php
/*
* Form del buscador!
*/
include_once('includes/php/libs/conectar.php');
include_once('includes/php/libs/form_generate.php');
$link = conectar();
?>
<select id="marca" name="marca" class="search" onclick="xajax_selectMod(document.search.marca.selectedIndex)"> <?php selectMarcas(); ?>
<select id="mod" name="mod" class="search">
El problema es que si bien las marcas se cargan bien, cuando clickeo sobre una, no me cargan sus modelos.
El log de errores de PHP no devuelve nada. Si me aparece ningún alert de js!.
Alguna sugerencia?
Desde ya muchas gracias.