Listes liées [PhP-Ajax]
Résolu
azerty0
Messages postés
1274
Date d'inscription
Statut
Membre
Dernière intervention
-
azerty0 Messages postés 1274 Date d'inscription Statut Membre Dernière intervention -
azerty0 Messages postés 1274 Date d'inscription Statut Membre Dernière intervention -
Le code initial :
Le code AJAX :
Et enfin, le code de remplacement.
Je ne comprends vraiment pas pourquoi ca marche pas... Quelqu'un aurait-il une idée ?
echo ' <SELECT name="select_date_creation" id="select_date_creation" style="display:none" onChange="go();"> '; echo ' <OPTION selected="selected" onclick="redirection('.$defaut.",".$defaut.')">Selectionnez une date</OPTION>'; while( ($ligne_creation_dates = mysql_fetch_assoc($req_creation_dates)) !== false) { echo " <OPTION value='".$ligne_creation_dates['id_date']."' onclick='redirection(".$ligne_creation_dates['id_date'].",".$defaut.")'>".$ligne_creation_dates['jour']." ".$ligne_creation_dates['formate']."</OPTION>"; } echo ' </SELECT>'; echo " <div id='div_heure_creation'>"; echo " <SELECT name='select_heure_creation' id='select_heure_creation' style='display:none'>"; echo ' <OPTION selected="selected" value="-1">Selectionnez un créneau</OPTION>'; echo " </SELECT>"; echo " </div>";
Le code AJAX :
function go() { var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200) { leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('div_heure_creation').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajax_heure_creation.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de la date // Si Date selectionné mais pas Heure sel = document.getElementById('select_date_creation'); select_date_creation = sel.options[sel.selectedIndex].value; // On envoit que la date en POST var data = "select_date_creation="+select_date_creation; xhr.send(data); } function redirection(date_id, heure_id) { var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200) { leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajax_heure_creation.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id du produit var data = "select_date_creation="+date_id+"&select_heure_creation="+heure_id; xhr.send(data); }
Et enfin, le code de remplacement.
<?php // S'il existe une heure non vide envoyé en POST if(isset($_POST["select_date_creation"]) && !empty($_POST["select_date_creation"])) { $date_selectionnee = $_POST["select_date_creation"]; require_once 'singleton.php'; // Ecriture du Select echo "<select id='select_heure_creation' name='select_heure_creation'>"; // Option par defaut : Non du Nom de la date choisie ! $sans_heure = -2; echo "<option value='' onclick='redirection(".$_POST['select_date_creation'].",".$sans_heure.")'>Choisissez un créneau</option>"; // Selection des crénaux ou l'on peut créer un enregistrement. $sql = Connexion::requete("SELECT * FROM entree WHERE ent_id_date = '".$date_selectionnee."' AND ent_id NOT IN ( SELECT enr_ent_id FROM enreg WHERE util_id = 18 AND enr_date = '".$date_selectionnee."')"); // Boucle écrivant les options ! while( ($ligne_heure_creation = mysql_fetch_assoc($sql)) !== false ) { $heure_deb = $ligne_heure_creation['ent_heure_deb']; $heure_fin = $ligne_heure_creation['ent_heure_fin']; echo "<OPTION value='".$ligne['ent_id']."' onclick='redirection(".$date_selectionnee.",".$sans_heure.")'>De".$heure_deb." à ".$heure_fin."</OPTION>"; } echo "</select>"; } else { $defaut = -1; // Selection de la Categorie echo " <SELECT name='select_heure_creation' id='select_heure_creation' style='display:none'>"; echo ' <OPTION selected="selected" value="-1" onclick="redirection('.$defaut.','.$defaut.')">Selectionnez un créneau</OPTION>'; echo " </SELECT>"; } ?>
Je ne comprends vraiment pas pourquoi ca marche pas... Quelqu'un aurait-il une idée ?
A voir également:
- Listes liées [PhP-Ajax]
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Listes déroulantes excel - Guide
- Listes déroulantes en cascade excel - Guide
- Retour à la ligne php ✓ - Forum PHP