Récupérer variable checkbox après XMLHttpRequ

Fermé
Vincent - 17 oct. 2008 à 15:45
 Vincent - 20 oct. 2008 à 09:50
Bonjour,

Une page récupère une liste de checkbox après avoir selectionné une valeur dans un menu déroulant.
Exemple : Je choisi un pays => la liste des départements apparait (sans rafraichir la page via un XMLHttpRequest) avec devant chaque nom de département une checkbox.

Jusque là tout va bien.

Je voudrai ensuite récupérer les valeurs de checkbox pour savoir quels départements ont été cochés. Ces départements sont dans un formulaire contenant aussi d'autres champs (nom, prénom ...). Nom et Prénom ne sont pas générés dynamiqement donc je les récupère bien. Mais je n'arrive pas à savoir comment récupérer les départements après avoir validé mon formulaire.

Est-ce que je suis assez clair ?

Est-ce que l'un d'entre vous aurait une idée ?

Merci de votre aide !!!!

Vincent
A voir également:

3 réponses

Merci mousekey pour ta réponse mais celà ne me répond pas exactement.

Si je prend ce script, $_GET['options'] est vide. Php ne détecte pas de variable dedans.

C'est bien là mon soucis ;)

Tu aurais une idée du poruquoi ?

Merci !!!

Vincent
0
Arf, j'ai du mal à m'exprimer ...
Voici le code que j'utilise, ce sera peut-être plus clair :

page test2.php :

-------- Le script --------
<script>
function request05(f, pseudobox)
{
var l1 = f.elements["list1"];
var l2 = f.elements["list2"];
var index = l1.selectedIndex;
var pseudobox = pseudobox
if(index < 1)
{
l2.options.length = 0;
}
else
{
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
{
xhr_object = new XMLHttpRequest();
}
else if(window.ActiveXObject) // Internet Explorer
{
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
// XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("POST", "sqltest.php", true);
xhr_object.onreadystatechange = function anonymous()
{
if(xhr_object.readyState == 4)
{
document.getElementById(pseudobox).innerHTML = xhr_object.responseText;
}
}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = "id="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
var data2 = "id="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
xhr_object.send(data);
}
}
</script>

-------- Le formulaire --------
<form class="CenteredForm" name="form_selects" id="form_selects" action="" method="">
<fieldset>
<legend>Faites un choix dans la liste de gauche<br />et observez le résultat dans celle de droite</legend>
<div class="Left">
<select name="list1" id="list1" onchange="request05(this.form, 'pseudobox')">
<option value="" selected="selected"></option>
<?php
$requete_fd="SELECT * FROM tbl_structure;
$requete_fd=mysql_query($requete_fd) or die();
while ($enr_fd=mysql_fetch_array($requete_fd))
{ echo '<option value='.$enr_fd["Num_structure"].'>'.$enr_fd["Nom1_structure"].'</option>'; }
?>
</select>
<input type="submit" value="envoyer"/>
</div>
</fieldset>
</form>

La page sqltest.php (qui génere la liste de checkbox en fonction du choix fait en premier dans le menu déroulant

header('Content-type: text/html; charset=iso-8859-1');

include("admin/connect.php");

$query = "SELECT * FROM tbl_utilisateur WHERE Num_structure_utilisateur = '".$_POST["id"]."'";
$result = @mysql_query($query);
while($r = mysql_fetch_array($result))
echo '<input type="checkbox" value="'.$r["Num_utilisateur"].'" name="Num_utilisateur[]">'.$r["Nom1_utilisateur"].'<br>';

@mysql_close($mysql_db);

--------------------------------------
Est-ce que tu y vois plus clair ?

Vincent
0
cmoif Messages postés 19 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 24 octobre 2008
17 oct. 2008 à 18:36
tiens regarde le petit code que j'ai fait, et test le. çà devrais t'aider je pense ;)

<?php

echo " <form method='post' action=#>
			<input type='checkbox' name='test[1]' value='toto'> checkbox de toto<br>
			<input type='checkbox' name='test[2]' value='tata'> checkbox de  tata<br>
			<input type='submit' name='send' value='Renvoyer la sélection'>
		</form>
		";
		
		if(isset($_POST['send'])&&isset($_POST['test']))
		{
		foreach($_POST['test'] as $val)
			{
			echo "vous avez choisis : ".$val."<br>";
			}
		
		}
			


?>
-1