Liste déroulante PHP/JS défectueuse
Fermé
Zimeur
Messages postés
306
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
7 mai 2011
-
14 févr. 2009 à 17:07
Zimeur Messages postés 306 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 7 mai 2011 - 19 févr. 2009 à 12:50
Zimeur Messages postés 306 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 7 mai 2011 - 19 févr. 2009 à 12:50
A voir également:
- Liste déroulante PHP/JS défectueuse
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
- Supprimer une liste déroulante excel - Forum Word
- Round js ✓ - Forum Javascript
6 réponses
974_Vin's_974
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
16 févr. 2009 à 07:45
16 févr. 2009 à 07:45
J'ai rien compris à ton probleme ....
Mais tu veux quoi ???
Des listes déroulantes liées ???
Mais tu veux quoi ???
Des listes déroulantes liées ???
Zimeur
Messages postés
306
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
7 mai 2011
45
16 févr. 2009 à 20:41
16 févr. 2009 à 20:41
oui tout à fait !
j'aurais dû dire ça dès le début XD
j'aurais dû dire ça dès le début XD
974_Vin's_974
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
17 févr. 2009 à 05:21
17 févr. 2009 à 05:21
Ah ok ben t'en veux deux c ca ???
Bon jte donne ske g déja donné a un pote sur l'forum
Alors la page valideLD1.php :
include ("connexionBDD.php"); //Connexion BDD
$rq="Select ... FROM ..."; //Requete retournant les éléments que tu souhaite afficher dans la premiere ligne
$rq_pos_id=0; //position dans le SQL de la clé de la liste déroulante
$rq_pos_val=1; //position dans le SQL de la valeur de la liste déroulante
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '<select style="width: 320" name="Liste1" id="Liste1" size="1" onchange="remplir_form(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">< Choisissez ></option>';
if (mysql_num_rows($result) != 0)
{
while ($row = mysql_fetch_row($result))
{
$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
}
$retour .= '</select>';
} else {
$retour = '<input id="size" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($result);
mysql_close();
echo $retour;
Ensuite la page scriptlistederoulante.js : (completement diférente)
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest,pouvez-vous le mettre à jour?...");
xhr = false;
}
return xhr;
}
function remplir_form(idServ)
{
//pour l'exemple on recupere l'id courant à l'intérieur de la fonction
//mais normalement c'est un parametre à passer à la fonction....
var Ld1Id=idServ;
var xhr = getXhr();
// On définit ce qu'on va faire quand on aura la réponse
//pour les methodes de l'objet xhr allez faire un tour le net;)
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)
{
//la reponse est retournée au format texte(pour faire de l'ajaX le format de retour doit etre du Xml....)
lareponse = xhr.responseText;
//allez :il faut traiter la chaine de caractere renvoyee par le script php(action.php)
var w = document.getElementById("Liste2");
var content = w.innerHTML;
content = lareponse;
w.disabled = false;
w.innerHTML = content;
//A voir >>>DOM(pour l'accès et modifications d'une page web en direct
//document.getElementById('Liste2').innerHTML = lareponse;
}
}
// Ici on va voir comment faire du post
//il faut verifier a koi correspond la valeur true.....
xhr.open("POST","valideLD2.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
// ne pas oublier de poster les arguments
xhr.send("Ld1="+Ld1Id);
}
Ensuite la page valideLD2.php :
@header('Content-type:text/xml; charset=utf-8');
include ("connexionBDD.php");
$Ld1_retour =''; //id_département clé de la liste déroulante 1
if (isset($_POST['Ld1'])) {$Ld1_retour = $_POST['Ld1'];}
if ($Ld1_retour!='') {
$rq="Select ... FROM ... where ...=".$Ld1_retour.""; //Requete retournant les infos selon le chois de la premiere liste
$rq_pos_id=0;
$rq_pos_val=1;
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '';
$retour .= '<option selected value="">< Choisissez ></option>';
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_row($result)) {
$retour .= '<option value="'. $row[$rq_pos_id] .'">'. htmlentities($row[$rq_pos_val]) .'</option>';
}
$retour .= '';
} else {
$retour = '<select style="width: 320" name="Liste2" id="Liste2" size="1" disabled><option>< Cellule ></option></select>';
}
mysql_free_result($result);
mysql_close();
}else{
$retour = '<select style="width: 320" name="Liste2" id="Liste2" size="1" disabled><option>< Cellule ></option></select>';
}
echo $retour;
et enfin ton formulaire :
<tr>
<td>Liste 1 :</td>
<td>
<?php
include("valideLD1.php"); //Affichage de la liste déroulante 1
?>
</td>
</tr>
<tr>
<td>Liste 2 :</td>
<td>
<span id="niv2">
<select style="width: 320" name="Liste2" id="Liste2");" disabled="disabled"><!-- Liste deroulante, permettant de choisir les cellules selon le service -->
<option>< Choisissez ></option><!-- le premier element afficher dans la liste deroulante -->
</select>
</span> <!--Pour remplir la liste déroulante 2-->
</td>
</tr>
Essaye ca !! Y te faut polusieur page..
Bon jte donne ske g déja donné a un pote sur l'forum
Alors la page valideLD1.php :
include ("connexionBDD.php"); //Connexion BDD
$rq="Select ... FROM ..."; //Requete retournant les éléments que tu souhaite afficher dans la premiere ligne
$rq_pos_id=0; //position dans le SQL de la clé de la liste déroulante
$rq_pos_val=1; //position dans le SQL de la valeur de la liste déroulante
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '<select style="width: 320" name="Liste1" id="Liste1" size="1" onchange="remplir_form(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">< Choisissez ></option>';
if (mysql_num_rows($result) != 0)
{
while ($row = mysql_fetch_row($result))
{
$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
}
$retour .= '</select>';
} else {
$retour = '<input id="size" type="text" size="10" value="Aucune valeur" disabled>';
}
mysql_free_result($result);
mysql_close();
echo $retour;
Ensuite la page scriptlistederoulante.js : (completement diférente)
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest,pouvez-vous le mettre à jour?...");
xhr = false;
}
return xhr;
}
function remplir_form(idServ)
{
//pour l'exemple on recupere l'id courant à l'intérieur de la fonction
//mais normalement c'est un parametre à passer à la fonction....
var Ld1Id=idServ;
var xhr = getXhr();
// On définit ce qu'on va faire quand on aura la réponse
//pour les methodes de l'objet xhr allez faire un tour le net;)
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)
{
//la reponse est retournée au format texte(pour faire de l'ajaX le format de retour doit etre du Xml....)
lareponse = xhr.responseText;
//allez :il faut traiter la chaine de caractere renvoyee par le script php(action.php)
var w = document.getElementById("Liste2");
var content = w.innerHTML;
content = lareponse;
w.disabled = false;
w.innerHTML = content;
//A voir >>>DOM(pour l'accès et modifications d'une page web en direct
//document.getElementById('Liste2').innerHTML = lareponse;
}
}
// Ici on va voir comment faire du post
//il faut verifier a koi correspond la valeur true.....
xhr.open("POST","valideLD2.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
// ne pas oublier de poster les arguments
xhr.send("Ld1="+Ld1Id);
}
Ensuite la page valideLD2.php :
@header('Content-type:text/xml; charset=utf-8');
include ("connexionBDD.php");
$Ld1_retour =''; //id_département clé de la liste déroulante 1
if (isset($_POST['Ld1'])) {$Ld1_retour = $_POST['Ld1'];}
if ($Ld1_retour!='') {
$rq="Select ... FROM ... where ...=".$Ld1_retour.""; //Requete retournant les infos selon le chois de la premiere liste
$rq_pos_id=0;
$rq_pos_val=1;
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '';
$retour .= '<option selected value="">< Choisissez ></option>';
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_row($result)) {
$retour .= '<option value="'. $row[$rq_pos_id] .'">'. htmlentities($row[$rq_pos_val]) .'</option>';
}
$retour .= '';
} else {
$retour = '<select style="width: 320" name="Liste2" id="Liste2" size="1" disabled><option>< Cellule ></option></select>';
}
mysql_free_result($result);
mysql_close();
}else{
$retour = '<select style="width: 320" name="Liste2" id="Liste2" size="1" disabled><option>< Cellule ></option></select>';
}
echo $retour;
et enfin ton formulaire :
<tr>
<td>Liste 1 :</td>
<td>
<?php
include("valideLD1.php"); //Affichage de la liste déroulante 1
?>
</td>
</tr>
<tr>
<td>Liste 2 :</td>
<td>
<span id="niv2">
<select style="width: 320" name="Liste2" id="Liste2");" disabled="disabled"><!-- Liste deroulante, permettant de choisir les cellules selon le service -->
<option>< Choisissez ></option><!-- le premier element afficher dans la liste deroulante -->
</select>
</span> <!--Pour remplir la liste déroulante 2-->
</td>
</tr>
Essaye ca !! Y te faut polusieur page..
Zimeur
Messages postés
306
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
7 mai 2011
45
18 févr. 2009 à 16:11
18 févr. 2009 à 16:11
merci mais y'aurais pas plus simple ??? :s
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
974_Vin's_974
Messages postés
547
Date d'inscription
vendredi 23 janvier 2009
Statut
Membre
Dernière intervention
19 février 2009
102
19 févr. 2009 à 05:43
19 févr. 2009 à 05:43
Ben ce que tu veux faire c pas très simple .; Tu veux deux listes déroulantes qui soient lié c ca ???
Il faut utilisé du JAVA de l'AJAX, mais apré ca marche parfaitement ...
Il faut utilisé du JAVA de l'AJAX, mais apré ca marche parfaitement ...
Zimeur
Messages postés
306
Date d'inscription
dimanche 8 juillet 2007
Statut
Membre
Dernière intervention
7 mai 2011
45
19 févr. 2009 à 12:50
19 févr. 2009 à 12:50
oué c'est ça, c.a.d que quand je choisi une option dans la liste 1, les choix de la liste 2 sont prédéfinis
par exple si je choisi IG dans la liste 1, dans la liste 2 y'aura : DAIGL, ALSI ...
et ça ça me servira à mieux récupérer les infos du formulaire pour ma requête SQL
mon code de liste que j'avais trouvé: http://www.thelin.net/laurent/labo/js/listesderoulantes.html
par exple si je choisi IG dans la liste 1, dans la liste 2 y'aura : DAIGL, ALSI ...
et ça ça me servira à mieux récupérer les infos du formulaire pour ma requête SQL
mon code de liste que j'avais trouvé: http://www.thelin.net/laurent/labo/js/listesderoulantes.html