Ajax et les checkbox

Fermé
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 21 févr. 2011 à 17:04
_nicolas Messages postés 169 Date d'inscription mercredi 29 janvier 2014 Statut Membre Dernière intervention 24 juin 2014 - 26 févr. 2014 à 11:45
Bonjour,
J'ai un tableau qui se présente comme ceci :
exemple :
Titre : Catégorie :
bidule A
bidule2 B
bidule3 C
Et quand je clique sur catégorie un hover s'affiche avec la possibilité de choisir les catégories à afficher, donc si le type choisis A et C j'affiche seulement les catégories A et C...
Je penses qu'il faut utiliser de l'ajax...
j'ai essayé un code mais sans grand succès :
function maFonctionAjax(Id, Nom)
{
  var OAjax;
  if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
  else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
  OAjax.open('POST',"affiche.php",true);
  OAjax.onreadystatechange = function()
  {
      if (OAjax.readyState == 4 && OAjax.status==200)
      {
          if (document.getElementById)
          {   
              if (OAjax.responseText =='true') { /* OK */
                    document.getElementById('msg').innerHTML='<font color=GREEN>'+OAjax.responseText+'</font>';
              }else{                             /* PAS OK */
                    document.getElementById('msg').innerHTML='<font color=RED>'+OAjax.responseText+'</font>';
              }
          }     
      }
  }
  OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  OAjax.send('cat='+check1+'&cat2='+check2+'&cat3='+check3);                 
} 

et mon code html
<input type="checkbox" id="check1" name="check1"><div width="6px" style="display:inline;">&nbsp;</div><img src="images/ico/image.png"><div width="6px" style="display:inline;">&nbsp;</div>Exploitation
				<br /><input type="checkbox" id="check2"  name="check2"><div width="6px" style="display:inline;">&nbsp;</div><img src="images/ico/image2.png"><div width="6px" style="display:inline;">&nbsp;</div>Infrastructure
				<br /><input type="checkbox" id="check3" name="check3"><div width="6px" style="display:inline;">&nbsp;</div><img src="images/ico/image3.png"><div width="6px" style="display:inline;">&nbsp;</div>Bâtiment
				<br /><br />


et ma récupération :

if($_POST['check1'] == "")
{
	echo "vide";
}
else
{
	echo "pas vide";
}

ca serait également cool d'afficher les résultats sur la même page...
merci pour votre aide.

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
21 févr. 2011 à 17:14
Bonjour,

À première vue, le problème viendrait de cette ligne-là :
OAjax.send('cat='+check1+'&cat2='+check2+'&cat3='+check3);

check1, 2 et 3 ne sont pas utilisables directement en javascript.

Juste avant cette ligne, tu peux les remplir comme ceci :

var check1 = (document.getElementById("check1").checked) ? "1":"";
var check2 = (document.getElementById("check2").checked) ? "1":"";
var check3 = (document.getElementById("check3").checked) ? "1":"";

Xavier
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
21 févr. 2011 à 17:22
La récup apparemment des données se fait très bien,
je montre comment est organisé mon html :
<td align="center" class="contenu_tab"><img src="images/ico/carre_jaune.png" width="5px" height="5px"></td>
<td align="center" class="contenu_tab"><img src="images/ico/carre_bleu.png" width="5px" height="5px"></td>
<td align="center" class="contenu_tab"><img src="images/ico/carrer_rose.png" width="5px" height="5px"></td>

Je dois avoir une vingtaine de ligne sur ma page...
je dois passer obligatoirement par de l'ajax pour faire un "tri" ?
merci de vos réponses
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
21 févr. 2011 à 17:26
Désolé, je ne comprends pas ta question... Tu veux faire quoi exactement ?
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
21 févr. 2011 à 17:30
dans un tableau j'ai une colonne catégorie.
quand je clique dessus apparait un formulaire de trie.
ou l'utilisateur peut choisir de cocher les catégories qu'il souhaite voir dans son tableau...
et je voudrais que par exemple si il coche A et B que directement mon tableau change, en restant sur la même page en affichant ce que l'utilisateur à choisi
0
si ta base de données n'est pas trop lourde, charge toutes les données, puis ensuite gère l'affichage des catégories par du javascript+css, ca évite d'envoyer plein de requêtes au serveur (categorie1.onclick = function() {categorie1.div.style.display = none;}) des trucs de ce style là
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
Modifié par Melooo le 22/02/2011 à 09:04
Le problème c'est que ma base de données sera assez balaise par la suite...
0
_nicolas Messages postés 169 Date d'inscription mercredi 29 janvier 2014 Statut Membre Dernière intervention 24 juin 2014 8
26 févr. 2014 à 11:45
Comment faites vous pour faire des cases à cocher ?
0