如果使用AJAX

时间:2015-06-09 01:27:52

标签: php mysql ajax checkbox

我想插入" 0"或" 1"使用php复选框进入mysql数据库但是值无法存储到数据库中! 我试图插入一个像这样的复选框数组:

1:已选中

0:未选中

[answer] => Array
        (
            [0] => answer 1
            [1] => answer  2
            [2] => answer  3
        )

[check] => Array
        (
            [0] => 1
            [1] => 0
            [2] => 1
        )

php文件:

<td> <!-- <input type="hidden"  name="check[]" value="0" >-->
     <input type="checkbox" id="check" name="check[]" value="1">
</td>

在过程文件中通过AJAX我存储了答案数据库,但我无法存储每个选择的答案的检查值

$query = mysql_query("INSERT INTO questions 
                         (nom_question,id_categorie)       
                     VALUES('$question','$categorie')", $conn) 
                     or die(mysql_error());

//last insert id question
$last_id = mysql_insert_id();

$check =  $_POST['check']; 

foreach ($reponse as $key=>$value  ) {
    $values = mysql_real_escape_string($value);
    $x='1';
    $query = mysql_query("INSERT INTO reponses 
                         (nom_reponse,id_question,id_categorie,correct) 
                         VALUES ('$values',
                                 '$last_id',
                                 '$categorie',
                                 '$x')") 
                or die(mysql_error());

PLZ帮忙!如果选中,我怎么能用支票存储答案谢谢。

3 个答案:

答案 0 :(得分:1)

非常简单,你必须记住CheckBox只能从html表单发送到脚本, IF 它们实际上是被检查的,所以$ _POST或$中不存在未选中的复选框_GET数组。

这不像看起来那么大,只需检查复选框是否存在,如果存在,则检查它。

所以在你的代码中而不是这样做

$check =  $_POST['check']; 

这样做

$check =  isset($_POST['check']) ? 1 : 0; 

我会更进一步显示将其存储在数据库中的代码,但您的代码实际上并未在任何地方使用$check变量。

答案 1 :(得分:0)

尝试使用ajax发布的帖子 将id更改为类以便于选择

var selectedCB = new Array();
$('.cbcheck:checked').each(function() {
            selectedCB.push(this.value);
          });
          $.ajax({
            url: 'insert.php',
            dataType: 'text',
            type: 'post',
            contentType: 'application/x-www-form-urlencoded',
            data: {recordsval: selectedCB},
            success: function( data){
              $('#result').html(data);
            },
            error: function(errorThrown ){
              console.log( errorThrown );
            }
          });


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" class="cbcheck" name="check[]" value="1">
<input type="checkbox" class="cbcheck" name="check[]" value="0">
<input type="checkbox" class="cbcheck" name="check[]" value="1">
<input type="submit" value="submit">
<div id="result"></div>

和php句柄

<?php
$data = $_POST['recordsval'];
var_dump($data);
?>

使用您的代码进行调整......

答案 2 :(得分:0)

非常感谢先生重播;但问题是复选框是动态的,所选值取决于用户! 我使用表单serliaze通过ajax发送pot数据:复选框的格式为

<form name="form" id="form" role="form" method="post" action="">
<<tr>
                        <td>Answer</td>
                        <td><input type="text" id="name" name="answer[]"></td>

                        <td>

                                <input type="checkbox" id="check" name="check[]" ></td>
                        <td><input type="button" value="Ajouter" " class="button"></td>
                    </tr>
</form>

我怎么能选择所选的答案!如果答案是真的,那么这个想法就是存储一个,如果没有在列中存储0并且正确的话。在数据库中

我通过这种方式尝试通过AJAX处理数据

 $(function() {
                $("#form").on("submit", function(event) {
                    event.preventDefault();

                    $.ajax({
                        url: "test.php",
                        type: "post",
                        data: $(this).serialize(),
                        success: function(d) {
                            alert(d);
                        }
                    });
                });
            });
            });