Afficher les donnees du checkbox

katr vin - Modifié par jordane45 le 29/02/2016 à 13:48
 katr vin - 1 mars 2016 à 07:35
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.

3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
29 févr. 2016 à 13:51
Bonjour,

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


0
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.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
29 févr. 2016 à 14:09
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 !
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
29 févr. 2016 à 14:12
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 ??
0
katr vin > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
Modifié par katr vin le 29/02/2016 à 14:19
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 
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 1/03/2016 à 00:31
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                                                                 
0
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;
0
Rejoignez-nous