XAJAX > generer une liste deroulante a partir d'une autre

Petit nouveau ! | 1 Messages

09 nov. 2011, 20:47

Bonjour,
je me lance tout juste dans ajax et je souhaite utiliser XAJAX mais mon premier teste n'est pas tres concluant.
Je cherche à afficher une liste déroulante en fonction du résultat d'une autre liste déroulante.
A l'écran rien ne se passe, pas d'erreurs, pas de seconde liste déroulante.... rien.
voici mon code
<?php session_start(); 

function AfficherCodes($poles_id)
{
	$reponse = new xajaxResponse();	
	$liste_codes = '<select name="pro_codes" size="5" multiple>'; 
	
	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=db_test', 'root', '', $pdo_options);  
	$reponse_qr = $bdd->query('SELECT * FROM codes WHERE poles_id = "'.$poles_id.'"');
	while($data = $reponse_qr->fetch())
	{
		$liste_codes .= '<option value="'.$data['codes_id'].'">'.$data['codes_nom'].' - '.$data['codes_titre'].'</option>';
	}
	$reponse_qr->closeCursor();
	
	$liste_codes .= '</select>'; 
	
	$reponse->assign('block_liste_codes', 'innerHTML', $liste_codes);
	
	return $reponse;

}

require ('/app/htdocs/intranet/xajax/xajax_core/xajax.inc.php');
$xajax = new xajax(); //On initialise l'objet xajax.
$xajax->register(XAJAX_FUNCTION, 'AfficherCodes');// On enregistre nos fonctions.
$xajax->processRequest();
echo'<form>
<select id="choix_poles" name="poles_id" class="champform_liste" onChange="xajax_AfficherCodes(this.value)"><option value="0"></option>
';

$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=db_test', 'root', '', $pdo_options);  
$reponse = $bdd->query('SELECT * FROM poles');
while ($data = $reponse->fetch())
{
echo '<option value="'.$data['poles_id'].'">'.$data['poles_nom'].'</option>';
}
$reponse->closeCursor();

echo'		
<option value="FT_PAPC">Fonctions</option></select>
';

$xajax->printJavascript('../../../xajax/');

echo'
<script type="text/javascript">
function refresh()
{
	xajax_AfficherCodes();
	setTimeout(refresh, 5000);
}
</script>

<div id="block_liste_codes"></div></form>
';
?>