Récupération de valeurs de plusieurs select
Bonjour à tous,
Cette problématique a déjà été traitée ici, mais je ne comprends pas très bien. Voici donc pourquoi je relance un sujet.
Dans le développement de mon site, j'ai atteins une partie dans laquelle il me faut, pour l'intégration des données dans un BD, récupérer la valeur de plusieurs select. Voici quelques parties de codes avec leurs utilisations. Il s'agit d'une page permettant de réaliser la demande de visites guidées d'un ou plusieurs ateliers.
Cette première partie me permet de générer les select nécessaire. Il y en aura maximum 5.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| function selectguide($languevisiteur, $idatelier){
global $bddmal;
$codegenere = "";
$requeteguide = $bddmal->prepare('SELECT guide.id as id, guide.nom as nom, guide.prenom as prenom
FROM guide, langue_visite, maitrise
WHERE langue_visite.lg = :languevisiteur
AND langue_visite.id = maitrise.idlangue
AND maitrise.idatelier= :idatelier
AND maitrise.idguide = guide.id ORDER BY guide.nom');
$requeteguide->bindParam(':languevisiteur', $languevisiteur, PDO::PARAM_STR);
$requeteguide->bindParam(':idatelier', $idatelier, PDO::PARAM_INT);
$resultat = $requeteguide->execute();
if( $resultat == false || $requeteguide->rowCount() < 1 )
return false;
$codegenere .= '<select name="idguide'.$idatelier.'" id="idguide'.$idatelier.'">';
while( $data = $requeteguide->fetch()){
$codegenere .= '<option value="'.$data['id'].'">';
$codegenere .= $data['nom'].', '.$data['prenom'].'</option>';
}
$codegenere .= '</select>';
$requeteguide->closeCursor();
return $codegenere;
} |
Voici la partie de code qui appelle celle mentionnée ci-dessus
Code:
1 2 3 4 5 6 7 8 9 10
| echo '<tr><td>Atelier</td><td>Guide</td><td>Date / Heure de la visite</td></tr>';
/* on affiche uniquement les visites des ateliers demandées */
echo ($donnees['ensemble']==1) ? '<tr><td>Ensemble du site</td><td>'.selectguide($donnees['langue'], 99).'</td><td>'.debutvisite(99, $donnees['id']).'</td></tr>'."\n": '';
echo ($donnees['carnaval']==1) ? '<tr><td>Atelier du Carnaval</td><td>'.selectguide($donnees['langue'], 14).'</td><td>'.debutvisite(14, $donnees['id']).'</td></tr>'."\n": '';
echo ($donnees['apapier']==1) ? '<tr><td>Atelier du Papier</td><td>'.selectguide($donnees['langue'], 15).'</td><td>'.debutvisite(15, $donnees['id']).'</td></tr>'."\n": '';
echo ($donnees['fpapier']==1) ? '<tr><td>Fabrication du Papier</td><td>'.selectguide($donnees['langue'], 16).'</td><td>'.debutvisite(16, $donnees['id']).'</td></tr>'."\n": '';
echo ($donnees['tresor']==1) ? '<tr><td>Trésor de la Cathédrale</td><td>'.selectguide($donnees['langue'], 17).'</td><td>'.debutvisite(17, $donnees['id']).'</td></tr>'."\n": '';
echo '<tr><td onClick="assignGuide(\''.$donnees['id'].'\')" >Valider</td></tr>'."\n";
break; |
Au niveau du Javascript, je souhaiterai récupérer la valeur de chacun de ces select afin de les assigner proprement dans ma BD. Pour ce faire, j'ai commencer le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| function assignGuide(numreservation){
var connection = createConnection();
var arrGuide = new Array();
arrGuide = document.getElementsByTagName("select");
for( var i=0 ; i < arrGuide.length ; i++){
var tagobj = arrGuide.item(i);
alert ("i: "+i+"\ntest: "+test);
}
/*
var selectidguide = document.getElementById("idguide");
var idguide = selectidguide.options[selectidguide.selectedIndex].value;
alert ("Valeur de idguide: "+idguide);
document.getElementById("conteneur").innerHTML = "<img src='./29.gif' alt='loading' /> Veuillez patienter ...";
connection.onreadystatechange=function(){
if( connection.readyState==4 && connection.status==200){
document.getElementById("conteneur").innerHTML = connection.responseText;
}
}
var requete = '&idvisite='+numreservation;
requete += '&idguide='+idguide;
connection.open("POST", "./inc/assignGuide.php", true);
connection.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
connection.send(requete);*/
} |
Au début du développement, nous étions parti sur le fait qu'un seul guide pouvait être assigné pour toutes les visites, mais à présent, nous avoir la possibilité d'assigner un guide différent pour chaque visite.
Je ne sais pas vraiment comment procéder au niveau de mon Javascript pour récupérer toutes les valeurs sélectionnées de chacun de mes select. L'ajout dans la BD sera réalisée par une secussion d'appel AJAX au script php se trouvant côté serveur.
J'espère avoir été clair dans la demande.
J'ai une idée, mais aucune idée si cela pourrait fonctionner. A savoir, assigner le même Name pour tous mes select, et assigner des valeurs id différentes pour chacun. Mais comment faire pour savoir qui correspond à quoi, et comment les retrouver.
Toutes idées, remarques, pistes, ou informations d'ordre général sont les bienvenues.
En vous remerciant tous pour votre collaboration, je vous souhaite de passer une bonne après midi.