php ajax

Une moulinette de code qui s'est enrayée, une requête SQL qui ne passe pas ?
Nejia B
 
Messages: 2
Inscription: 20 Avr 2012, 14:24

php ajax

Messagede Nejia B » 20 Avr 2012, 14:35

j'ai des checkbox qui seront créés dans des div après l’appel de la fonction. Mon problème est quand je fait la fonction $.ajax il fait appel à la page insertion_question.php d'ou à chaque foi $_POST['choix'] qui est le name de checkbox du formulaire ne la reconnais pas voila le code de la page php:

Code: Tout sélectionner
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("enquete");

$question    = $_POST['question'];
$description = $_POST['description'];
$type_s      = $_POST['type_s'];
$requete     = "insert into question (nom_qestion,description,id_type_q) values('" . $question . "','" . $description . "','" . $type_s . "')";
$sql         = mysql_query($requete);
$req         = mysql_query("select * from question");
$choix       = $_POST['choix'];

while ($tab = mysql_fetch_object($req)) {
    if ($tab->id_type_q == 3) {
        $selection = mysql_query("select id_question as selection from question where id_type_q=3");
        while (list($key, $val) = @each($choix)) {
            for ($i = 0; $i < $key; $i++) {
                $insertion = "insert into choix_critere (id_choix_c,id_question,nom ) values('" . $i . "','" . $selection . "','" . $val . "') ";
                echo ($insertion);
                $res = mysql_query($insertion);
            }
        }
    }
}
?>


merci

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2188
Inscription: 06 Sep 2008, 22:05

Re: php ajax

Messagede Galdon » 20 Avr 2012, 15:29

C'est assez flou ce que tu veux faire, il faudrait que tu donnes ton code côté client : HTML + Javascript, et plus du code PHP (dans une balise code).

En attendant, je vais de donner une petite astuce qui t'aidera beaucoup je pense : on peut faire en sorte qu'un champ de formulaire soit un tableau plutôt qu'une valeur atomique, en ajoutant des crochets après le nom du champ dans l'attribut name :

<input type="checkbox" name="choix[]" value="check1"> Check 1

Voilà une petite page PHP pour tester :

Code: Tout sélectionner
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Input multiple</title>
</head>
<body>
 
  <pre style="background:#eee;"><?php
  if( !empty($_POST) ){
    print_r($_POST);
  }
  ?></pre>

  <form id="form1" name="form1" method="post" action="">
   <input type="checkbox" name="choix[]" value="check1"> Check 1<br>
   <input type="checkbox" name="choix[]" value="check2"> Check 2<br>
   <input type="checkbox" name="choix[]" value="check3"> Check 3<br>
   <input type="checkbox" name="choix[]" value="check4"> Check 4<br>
   
   <br>
   <input type="submit" value="Envoyer">
  </form>
 
</body>
</html>


Voilà ce que ça donne côté PHP si tu coches que les cases 2 et 4 :

Code: Tout sélectionner
Array
(
    [choix] => Array
        (
            [0] => check2
            [1] => check4
        )

)
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol

Nejia B
 
Messages: 2
Inscription: 20 Avr 2012, 14:24

Re: php ajax

Messagede Nejia B » 21 Avr 2012, 15:48

ok je connais bien cette méthode j'ai déjà fait mais le problème que je ne sais pas le nombre des checkbox existant dans le formulaire et pour la méthode que tu ma données avec jquery il faut que je connais le nombre des chechbox j'ai essayé avec var n = $("input:checkbox").length; mais ça marche pas:
function question()
{
choix = new Array();
jQuery(document).ready(function($){
var n = $("input:checkbox").length;
monTableau = {
"question": $('#question').val(),
"description": $('#description').val(),
"type_s": document.getElementById('type_s').selectedIndex
};
for (var i=1; i <n ; i++)
{
monTableau['choix'+i]=$('#choix'+i).val()
alert('');
}
console.log(monTableau);
$.ajax({
type: "POST",
url: 'insertion_question.php',
data: monTableau,
success: function(msg){
alert(msg);
}
});
});
}

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2188
Inscription: 06 Sep 2008, 22:05

Re: php ajax

Messagede Galdon » 21 Avr 2012, 21:21

Nejia B a écrit:il faut que je connais le nombre des chechbox j'ai essayé avec var n = $("input:checkbox").length; mais ça marche pas:

Le contraire m'aurait beaucoup étonné.
Essaie avec ça :

Code: Tout sélectionner
jQuery(document).ready(function($){
    var n = $('input[type=checkbox]').length;
});

http://jsbin.com/imahux/edit#javascript,html

Le sélecteur CSS que tu a écrit : input:checkbox, signifie : "tous les éléments input ayant la pseudo classe checkbox".
Le seul petit problème c'est que la pseudo classe checkbox n’existe pas, les pseudo classes c'est : hover, active, visited...

PS : merci d'utiliser les balises bbcode pour le code source, par exemple :
Code: Tout sélectionner
blablabla

[code]var n = ...[/code]

blablabla
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol


Retourner vers PHP/MySQL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité