Problemme de chargement de select avec ajax

Fermé
stan2403 Messages postés 3 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 7 septembre 2010 - 6 sept. 2010 à 13:30
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 6 sept. 2010 à 22:25
Bonjour,

je veux charger un select partir d'un autre
mais sa na marche je ne comprend pas le problemme



<?php
// Configuration MySQL
$host_db = "localhost";
$user_db = "root";
$password_db = "mot de passe ";
$bdd_db = "test";

// connexion a la base de donnees et selection de la table
$connect_db = mysql_connect($host_db,$user_db,$password_db);
mysql_select_db($bdd_db,$connect_db);

require_once("../xajax.inc.php");

function SelectSouscat($catid)
{
$options="";
// créé un nouvel objet permettant d'envoyer une réponse au côté client
$objResponse = new xajaxResponse();
// on selectionne les sous-catégorie en fonction de l'id de la catégorie mère
$sql="SELECT id,titre FROM souscategories WHERE id_cat_mere = '".$catid."'";
$req=mysql_query($sql);
while ($souscat = mysql_fetch_array($req))
{
// on place toutes les sous-catégories dans des options valables pour la liste SELECT
$options .= '<option value="'.$souscat['id'].'">'.$souscat['titre'].'</option>';
}

// l'Ajax remplacera le innerHTML (html intérieur) de la liste_souscat pour y mettre $options
$objResponse->addAssign("liste_souscat","innerHTML",$options);
// envoie la réponse en XML
return $objResponse->getXML();
}

$xajax = new xajax();
//$xajax->debugOn();
$xajax->registerFunction("SelectSouscat");
$xajax->processRequests();
?>
<!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">
<head>
<title>Test de select dynamiques</title>
<?php $xajax->printJavascript("../") ?>
</head>
<body>

<h1>Test de select dynamiques</h1>

<form id="testForm1">
Choisissez une catégorie : <select id="liste_cat" onchange="xajax_SelectSouscat(this.value)">
<option value=""></option>
<?php
$sql="SELECT id_categorie, categorie FROM categories ORDER BY categorie ASC";
$req=mysql_query($sql) or die(mysql_error());
while($cat = mysql_fetch_array($req))
{
echo '<option value="'.$cat['id_categorie'].'">' . $cat['categorie'] . '</option>';
}
?>
</select><br />
Choisissez une sous-catégorie : <select id="liste_souscat">
</select>
</form>

</body>
</html>

1 réponse

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
6 sept. 2010 à 22:25
Salut.

Quand j'ai vu ton code, j'ai directement scroller en bas pour répondre, je n'ai même pas envie de le décrypter car tu n'as pas utiliser la balise <.code><./code> (sans les points) : la clarté du code est perdue.

Je ne pense pas que faire ça en AJAX "pur" soit si compliqué.
Si tu préfères te lancer dans AJAX sans xAJAX :
https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/244425-le-concept-dajax
https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/244798-lobjet-xmlhttprequest
https://siddh.developpez.com/articles/ajax/
https://dmouronval.developpez.com/tutoriels/ajax/comprendre-requete-ajax/
0