Récupérer variable checkbox après XMLHttpRequ
Vincent
-
Vincent -
Vincent -
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
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:
- Récupérer variable checkbox après XMLHttpRequ
- Recuperer message whatsapp supprimé - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer une video sur youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
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
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
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
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
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>";
}
}
?>