Bon je post car j'ai un soucis avec un script ajax que j'ai récupéré sur le net pour le modifier, oui je l'ai pas créé car je connais pas javascript, ajax et tous ça...
Le probleme est courant mais pas facile, j'ai un premier select avec des langues (parlé pas de boeuf
Et donc pour l'instant j'ai bien mon premier select qui se remplit via bdd mais dès que je choisis une langue le 2eme select est vide.....
Voici le code html/ajax (pas de balise html car c'est une page incluse dans un conteneur div et jaaser c'est un user) :
Code : Tout sélectionner
<?php
include 'config-connexion.php';
include 'select_chat_accueil.php';
?>
<script type="text/javascript" >
$(document).ready(function() {
var $lang = $('#lang');
var $choisir_jaaser = $('#choisir_jaaser');
// chargement des langues
$.ajax({
url: 'select_chat_accueil.php',
data: 'go', // on envoie $_GET['go']
dataType: 'json', // on veut un retour JSON
success: function(json) {
$.each(json, function(index, value) { // pour chaque noeud JSON
// on ajoute l option dans la liste
$lang.append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
// à la sélection d une langue de la liste
$lang.on('change', function() {
var val = $(this).val(); // on récupère la valeur de la langue
if(val != '') {
$choisir_jaaser.empty(); // on vide la liste des users
$.ajax({
url: 'select_chat_accueil.php',
data: 'id_lang='+ val, // on envoie $_GET['id_lang']
dataType: 'json',
success: function(json) {
$.each(json, function(index, value) {
$choisir_jaaser.append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
}
});
});
</script>
<select id="lang" name="lang">
<option value="">-- Langue --</option>
</select>
<select id="choisir_jaaser" name="choisir_jaaser">
<option value="">-- utilisateur--</option>
</select>
Code : Tout sélectionner
<?php
if(isset($_GET['go']) || isset($_GET['id_lang'])) {
// connexion à la base de données
try
{
$bdd = new PDO ('mysql:host=localhost;dbname=xxx;charset=utf8', 'root', '');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$json = array();
if(isset($_GET['go'])) {
// requête qui récupère les langues
$requete = "SELECT lang FROM langue ORDER BY lang";
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
// résultats
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
$json[$donnees['lang']][] = utf8_encode($donnees['lang']);
}
// envoi du résultat
echo json_encode($json);
} else if(isset($_GET['id_lang'])) {
$id =$_GET['id_lang'];
// requête qui récupère les users qui ont la langue choisi dans le premier select
$requete = "SELECT users FROM inscription WHERE lang_1 = ". $id ." OR lang_2 = ". $id ." OR lang_3 = ". $id ." ";
// exécution de la requête
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
// résultats
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
// je remplis un tableau
$json[$donnees['users']][] = utf8_encode($donnees['users']);
}
// envoi du résultat
echo json_encode($json);
}
}
?>
http://chez-syl.fr/2012/02/jquery-rempl ... tre-liste/
Voilà merci pour votre futur aide