Haber, he conseguido avanzar un pokito. Ahora no me da ningún error, pero los combobox no se cargan. Vamos, que no hace nada.
Tengo todo el código en la misma página php. Os adjunto todo lo relativo a xajax y los combobox, haber si alguien me ayuda.
Código PHP:
<?
include("GestorPisos.php");
require ("xajax/xajax.inc.php");
//echo "printJavaScript";
class myXajaxResponse extends xajaxResponse
{
var $gp;
function addCreateOption($sSelectId, $sOptionText, $sOptionValue)
{ //echo "entro a addCreateOption";
$this->addScript("addOption('".$sSelectId."', '".$sOptionText."', '".$sOptionValue."');");
}
function addCreateOptions($sSelectId, $aOptions)
{//echo "entro a addCreateOptions";echo gettype($aOptions);echo gettype($sSelectId);
foreach( $aOptions as $sOptionText => $sOptionValue)
{
$this->addCreateOption($sSelectId, $sOptionText, $sOptionValue);
}
}
function cargarListBox($localidad){
//echo "entro a cargarListBox";
if($localidad=="") $localidad="Donosti";
$gp=new GestorPisos();
$res=$gp->getZonas($localidad);
$i=0;
$array;
//echo "localidad:"; echo $localidad;
//echo "entro aquí";
while($row=mysql_fetch_row($res)){
//echo"entro aquí2";
$array[$i]=$row[0];//echo $row[0];
$i++;
}
//print_r($array); //echo gettype($array);
$this->addCreateOptions("zona", $array);
}
}
//echo "voy a ejecutar objResonse1";
$objResponse = new myXajaxResponse();
$xajax = new xajax();
//echo "voya ejectuar objResponse->cargarListBox(localidad);";
//$objResponse->cargarListBox($localidad);
//echo "he ejecutado cargarlistbox";
//$xajax->registerFunction("cargarListBox"); //echo "1";
$xajax->registerFunction("cargarListBox", &$objResponse, "cargarListBox");
$xajax->processRequests(); //echo "2";
//return $objResponse;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Administraciones Etxaniz---Etxaniz Administrazioak</title>
<?
$xajax->printJavascript("xajax/");
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
xajax_cargarListBox("Donosti");
</script>
etcetcetc
Código PHP:
<select name="localidad" onChange="xajax_cargarListBox(document.formulario.localidad.value)">
<!---->
<option value="Donosti" selected="selected">Barcelona</option>
<option value="Madrid">Lasarte</option>
</select>
</label></td>
<td><span class="m_text"><span class="Estilo14"><? echo $zonacli; ?></span></span></td>
<td><span class="Estilo15">
<select name="zona" >
<option value="las"><? echo $selezona; ?></option>
</select>
Haber si alguien me dice qué le pasa. Muchs gracias!!