[AJAX] Ajax avec des checkbox
Bonjour,
J'ai réalisé un tableau ou l'utilisateur peut choisir les données à afficher exemple :
Tache 1 - Gain +1000 - Catégorie A
Tache 2 - Gain +1000 - Catégorie A
Tache 3 - Gain -1000 - Catégorie B
L'utilisateur peut choisir d'afficher toutes les catégories, ou seulement les catégories A ou seulement les catégories B.
Quelque que soit les lignes que désirent afficher l'utilisateur, je veux récuperer le gain total pour chaque lien affichées.
Exemple :
Si l'utilisateur choisis d'afficher seulement les catégories A alors le gain total est de : +2000€ si il choisis d'afficher seulement les catégories B alors le gain total est de -1000€.
Mon souci c'est que je n'arrive pas à prendre en compte le choix de l'utilisateur.
Voici mon code Ajax :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
var xhr = getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
}
}
exploit = "";
infra = "";
bat = "";
// false : pas cochée - true : cochée
if(document.getElementById('checkA').checked == true && document.getElementById('checkB').checked == false)
{
exploit = "A";
data="Exploitation="+exploit;
}
xhr.open("POST","tableau_bord.php",true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data); |
Ce code permet de connaitre les checkbox cochés et de faire le traitement.
Appel de la fonction go() :
Code:
1 2
|
<input type="checkbox" onclick="go()" checked id="check2" name="check[]" |
Et le traitement pour le gain total :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
if(isset($_POST['A']))
{
echo "je rentre";
$sum = "SELECT DISTINCT SUM(tableau_gain_e) , SUM(tableau_gain_c) FROM tableau_bord WHERE tableau_type != 'B' ORDER BY tableau_gain_e";
$query_sum = mysql_query($sum);
$_sum = mysql_fetch_array($query_sum);
echo $_sum[0];
echo '<td align="center" id="contenu_tab" class="e_tot" style="display:none;" bgcolor="white">'.$_sum[0].'</td>';
echo '<td align="center" id="contenu_tab" class="c_tot" style="display:none;" bgcolor="white">'.$_sum[1].'</td>';
}
else
{
$sum = "SELECT DISTINCT SUM(tableau_gain_e) , SUM(tableau_gain_c) FROM tableau_bord WHERE ORDER BY tableau_gain_e";
$query_sum = mysql_query($sum);
$_sum = mysql_fetch_array($query_sum);
echo '<td align="center" id="contenu_tab" class="e_tot" style="display:none;" bgcolor="white">'.$_sum[0].'</td>';
echo '<td align="center" id="contenu_tab" class="c_tot" style="display:none;" bgcolor="white">'.$_sum[1].'</td>';
} |
Et lorsque je décoche catégorie B, le gain total ne s'affiche pas, lorsque tout est coché tout est ok.
je précise que tout est sur la même page (l'affichage de mon tableau + l'appel ajax)