Liste deroulante et checkbox

- 3 mars 2016 à 13:03 - Dernière réponse :  Ralako
- 10 mars 2016 à 12:02
Bonjour,
J'ai un problème sur la synchronisation d'une zone de liste déroulante et des checkbox. En faite je veux avoir des listes de choix de checkbox après que j'ai choisi dans la liste déroulante! tous ça sans bouton de déplacement et que le résultat s'affiche dans la même page.
Svp aide moi
Afficher la suite 

Votre réponse

8 réponses

Messages postés
23246
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2018
- 3 mars 2016 à 15:16
0
Merci
Bonjour,

Qu'as tu testé ?
Quel code as tu déjà commencé à écrire
Sur quoi bloques tu exactement ?

Bonjour,
pour le moment j'ai juste la zone de liste deroulante mais je suis bloque sur l'affichage des checkbox apres la selection dans la zone de liste deroulante
Merci d'avance
Messages postés
23246
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2018
> ralako - 4 mars 2016 à 11:30

j'ai juste la zone de liste deroulante

Et bien.. postes nous son code html dans ce cas


mais je suis bloque sur l'affichage des checkbox apres la selection dans la zone de liste deroulante

Tu es bloqué ... c'est à dire ? Qu'as tu essayé de coder ? En quoi cela ne marche t'il pas ?

Si tu ne sais pas comment déclencher un évènement lors d'une selection dans une liste déroulante... regarde donc l'event : ONCHANGE
http://www.w3schools.com/jsref/event_onchange.asp
Commenter la réponse de jordane45
0
Merci
Bonjour,
Desolé pour le ratard, j'ai essayé quelque code mais ça ne marche pas
voici

<html>
<head>
<script src="jquery.js"></script>
</head>
<body>
<form action="" name="form">
<select name="select" id="id_region" onchange='tester(this.form.value);'>
<OPTION Value=0>---Choisissez une region---</OPTION>";
<?php
include('connectBDD.php');

$reponse = $bdd->query('SELECT * FROM region');

while ($donnees = $reponse->fetch())
{

echo'<option value="'.$donnees['id_region'].'">'.$donnees['Nom_region'].'</option>';
}
?>
</select>
</body>
<script>
function tester(){
var i=document.form.select.selected.value;
if(i!=0){
$.post('district.php',{i:i},function(data){
$('.district').html(data);
}
}
}
</script>
<?php
include('district.php');
?>
</html>
district.php
<?php
include('ConnectBDD.php');
if(isset($_POST['i'])){
$i=mysql_real_escape_string(htmlspecialchars(trim($_POST['i'])));
$requete=$bdd->query('Select *from district where id_region= '.$i);
while($district = $requete->fetch()){
echo '<input type="checkbox"name="checkbox'.$district['id_region'].'" value="'.$district['id_district'].'">'.$district['Nom'].'<br>';

}

}
?>

voila,merci d'avance
Messages postés
23246
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2018
- 9 mars 2016 à 13:46
Déjà :
<select name="select" id="id_region" onchange='tester(this.form.value);'>


A changer par :
<select name="select" id="id_region" onchange='tester(this.value);'>


Ensuite... pourquoi envoyer un paramètre à ta fonction... si dans la déclaration de la fonction tu ne l'utilises pas ?
function tester(){

A changer par :

function tester(elmValue){
if(elmValue !="" && elmValue!=0){
   $.post('district.php',{i:i},function(data){
            $('.district').html(data);
    });
 }



Puis, dans ton code php :
Tu as, visiblement, oublié un ESPACE dans ta requête
$requete=$bdd->query('Select *from district where id_region= '.$i);

Remplace par :
$requete=$bdd->query("SELECT * FROM district WHERE id_region= '$i' ");


De plus, tu utilises l'instruction
mysql_real_escape_string
qui appartient à l'ancienne extension mysql .. mais ensuite tu fais appel à
$bdd->query
qui est la syntaxe PDO (ou mysqli )
Bref... revoie complètement ton code en y corrigeant toutes ces erreurs.... !!!!!

Pour finir, lorsque tu testes ta page, utilises les outils de debogage de ton navigateur internet. (perso je te recommande d'utiliser le plugin FIREBUG pour FIREFOX ) et regarde dans la CONSOLE ce qui s'affiche (en cas d'erreur dans le code js )
Ralako >
Messages postés
23246
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2018
- 10 mars 2016 à 09:56
Bonjour,
j'ai modifié le code mais ça ne marche pas encore.
le voici

<html>
<head>
<script src="jquery.js"></script>
</head>
<body>
<form action="" name="form">
<select name="select" id="id_region" onchange='tester(this.value);'>
<OPTION Value=0>---Choisissez une region---</OPTION>";
<?php
include('connectBDD.php');
$reponse = $bdd->query('SELECT * FROM region');
while ($donnees = $reponse->fetch())
{
echo'<option value="'.$donnees['id_region'].'">'.$donnees['Nom_region'].'</option>';
}
?>
</select>
<div class="district">
</div>
</body>
<script>
function tester(elmValue){
var i= document.getElementById('id_region');
if(elmValue !="" && elmValue!=0){
$.post('district.php',{i:i},function(data){
$('.district').html(data);
});
}
}
</script>
<?php
include('district.php');

?>
</html>

district.php
<?php
include('ConnectBDD.php');
if(isset($_POST['i'])){
$i=$bdd->query(htmlspecialchars(trim($_POST['i'])));
$requete=$bdd->query("SELECT * FROM district WHERE id_region= '$i' ");
while($district = $requete->fetch()){
echo '<input type="checkbox"name="checkbox'.$district['id_region'].'" value="'.$district['id_district'].'">'.$district['Nom'].'<br>';

}

}
?>

s'il vous plait aide moi.Merci
Messages postés
23246
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2018
> Ralako - 10 mars 2016 à 10:53
et qu'as tu dans la CONSOLE de ton navigateur ?
Ralako >
Messages postés
23246
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2018
- 10 mars 2016 à 12:02
L'encodage de caractères du document HTML n'a pas été déclaré. Le document sera affiché avec des caractères incorrects pour certaines configurations de navigateur si le document contient des caractères en dehors de la plage US-ASCII. L'encodage de caractères de la page doit être déclaré dans le document ou dans le protocole de transfert. region.php
too much recursion
jquery.js:2:1999
Commenter la réponse de Ralako

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.