Afficher les donnees du checkbox

-
Bonjour,
J'ai un probleme a propos de la selection multiple avec html et javascript
En fait j'ai 5 checkbox je veux que quand je clique sur le checkbox on m'affiche sur un div le nom correspondant avec javascript et php
Le probleme c'est qu'avec les codes que j'ai rien ne m'affiche ni erreur ni resultat
Est ce que quelqu'un peux m'aider svp
Nb: Mon formulaire ne contient pas de bouton
Voila le code script:
function cocher(){
       for(i=1;i<=22;i++){
      if(eval("document.forms.form.checkbox"+i+".checked == true")){
       var checkbox_val=[];
            $('checkbox'+i+':checked').each(function(){
            checkbox_val.push($(this).val());
            $.post('recup.php', {'tester':checkbox_val}, function(data){}); 
            $('.district').html(data);       

                     });
                      
                      }else{
                    $('.district').empty(); 
                      
                       }
         }
        }

et le code php
<?php
foreach($_POST['tester'] as $tester){
   echo $tester.'<br>';
} ?> 

pour le code php j'ai tous simplement essaie d'afficher l'id mais aucun resultat

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
Afficher la suite 

3 réponses

Messages postés
26954
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 décembre 2019
318
0
Merci
Bonjour,

Tu te mélanges les pinceaux .....
Peux tu nous poster le code complet de ta page ?? ( HTML + JS )


Commenter la réponse de jordane45
0
Merci
ok
Pour index.php j'ai ce code:

<html>
<head>
 <title></title>
 <script src="jquery.js"></script>
</head>
 <body>
 <form action="" name="form"> 
 <div class="region">
 <?php
 include('connectBDD.php');
 $requete=$bdd->query('select *from region');
 while($region=$requete->fetch()){
   echo '<input type="checkbox" onclick="cocher(this.form.checkbox);" name="checkbox'.$region['id_region'].'" value="'.$region['id_region'].'">'.$region['region'].'<br>';
          }
 ?>
 </div>
 <div class="district">
 </div>
 </form>
 </body>
 <script>
  function cocher(){
       for(i=1;i<=22;i++){
      if(eval("document.forms.form.checkbox"+i+".checked == true")){
            $.post('recup.php',{i:i},function(data){
            $('.district').html(data);
              
                });        
                      }else{
                    $('.district').empty(); 
                      
                       }
         }  
      }
 </script>
</html>


et pour le code php j'ai ce code

<?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 $district['district'].'<br>';
 
           }
   
      } 
   ?> 
<hr>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
jordane45
Messages postés
26954
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 décembre 2019
318 -
Pour la DERNIERE FOIS !!!!
**** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
J'ai édité ton message ( encore..... ) pour les mettre !
Merci de le faire toi même la prochaine fois !
jordane45
Messages postés
26954
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 décembre 2019
318 -
Déjà... côté PHP ...
Tu utilises quoi pour te connecter à ta BDD ? PDO ? Myslqi ?
Que vient faire ici l'instruction
mysql_real_escape_string
de l'ancienne extension mysql ??
> jordane45
Messages postés
26954
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 décembre 2019
-
j'utilise pdo mais est ce que ca a un lien avec mon probleme
pour ce le code que j'ai poste quand je clique sur un checkbox ca m'affiche le resultat mais quand je clique 2eme fois ca ne donne rien mais juste les noms correspondants de la case que j'ai coche la premiere fois et est ce qu'il y a d'autre methode que
 mysql_real_escape_string 
Commenter la réponse de katr vin
Messages postés
26954
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 décembre 2019
318
0
Merci
Voici un exemple :
<html>
<head>
 <title></title>
 <script src="jquery.js"></script>
</head>
 <body>

 <div class="region">
 <?php
  for($i=0;$i<10;$i++){
   echo '<input type="checkbox" class="chk_region" name="checkbox'.$i.'" value="'.$i.'"> region_'.$i.'<br>';
  }
 ?>
 </div>
 <div class="district">
 </div>

 </body>
</html>
 <script type="text/javascript">

 // Pour chaque checkbox cochée :
 $(".chk_region").click(function(){
   // On commence par vider district :
   $('.district').empty(); 
   
   //On récupère les données PHP
   $(".chk_region:checked").each(function(){
     var i = $(this).val();
     $.post('monfichierphpajax.php',{i:i},function(data){
        $('.district').append(data);
     });        
   });
  });
 </script>


Fichier monfichierphpajax.php
<?php
// Permet l'affichage des erreurs php
error_reporting(E_ALL);

//connexion à la BDD
include('connectBDD.php');


//Récupération "propre" des variables POST
$i = !empty($_POST['i']) ? $_POST['i'] : NULL;


// initialisation de la variable de retour
$result = "";

//traitement :
if($i){
  $sql = "Select *from district where id_region = :i ";
  $a_datas = array(":i"=>$i);
 
 try{ 
   $requete = $bdd->prepare($sql);
   $requete->execute($a_datas);
 }catch (Exception $e){
        echo "<br>Erreur : " . $e->getMessage();
        echo "<br> <b>Requete :<b><br> ".$sql;
        echo "<br> params :<br><pre>";
        print_r($a_datas);
        echo "</pre>";
        exit();
  }
  
  while($district = $requete->fetch()){
    $result .= $district['district'].'<br>';
  }
}
 
//retour du résultat
echo $result;
?>


nb: Le try/catch permet d'intercepter les eventuelles erreurs dans la requête.

.
Cordialement, 
Jordane                                                                 
Merci beaucoup
Mais pourquoi on met des points avant =
$result .= $district['district'].'<br>';

J'ai essaie de mettre des numéros au début mais çà ne marche pas
Seul les premiers selections qui on des numeros;
Commenter la réponse de jordane45