如何通过JQUERY将多个复选框传递给PHP

时间:2011-03-07 13:30:33

标签: php jquery

我已经修改了我的代码,我使用firebug console.log来检测php获取数组通过与否的天气。和firebug显示这个 - rescheck [] = 2& rescheck = 1& rescheck = 3

我认为php会获得数组,如果这就是php中的数组应该是什么样的。

那么大家好,如果那样可以解决如何在数据库中插入该数组的问题?或者如何循环呢?我做的foreach循环没有用。

JQUERY CODE:

$('#res-button').click(function (){

var room_id=$('[name=rescheck[]]:checked').serialize().replace(/%5B%5D/g,'[]');

    alert(room_id);


  $.ajax({
                    type: "POST",
                    url: "reservation-valid.php",
                    data: {name_r:name_r, email_r:email_r,contact_r:contact_r,prop_id:p_id,cvalue:room_id},
                    success: function(data) {

                    console.log(data);
}

});
});

<input type="checkbox" name="rescheck[]" value="<?php echo $roomid; ?>"  />

PHP代码:

$c_array=$_POST['cvalue'];

    echo $c_array;

    //foreach($c_array as $ch)
    //{
    //$sql=mysql_query("INSERT INTO reservation VALUES('','$prop_id','$ch','$name_r','$contact_r','$email_r','')");
    //}

我认为我管理我的jquery代码是正确的,但我不知道如何用PHP获取它。

4 个答案:

答案 0 :(得分:0)

这就是我在ibn我的网站上使用jquery和ajax调用将一个复选框列表保存到db。它创建一个数组并将其传递给ajax调用,php脚本处理数组。 如果你在这里遇到任何错误,你应该使用firebug调试js数组,以确保正确形成。

js script:

var $checkBox = $('[name=rescheck[]]:checked');
$checkBox.each(function() {
   if ($(this).is(":checked")){
        valuesCheck[this.value] = 1;
    }else{
        valuesCheck[this.value] = 0;    
   }

和PHP脚本:

$checkTab = $_POST['cvalue'];
        foreach ($checkTab as $idChkTab => $checkedOrNot){
            if ($checkedOrNot== "0"){
                //do something if isn't checked
            }

答案 1 :(得分:0)

room_id是一个数组,所以如果你想获得每个数组的值,你需要先将所有的值放在一起。

var room_id_string = '';

for(i=0;i<room_id.length;i++){
    room_id_string += room_id.eq(i).val() + ',';
}

答案 2 :(得分:0)

以下代码只会将[name=rescheck[]]:checked的数组jquery对象传递给room_id

而不是这样,您将不得不创建一个数组并在其中推送值

var room_id = Array();

$('[name=rescheck[]]:checked').each(function(){
      room_id.push($(this).val());

});

答案 3 :(得分:0)

在jQuery中,您可能更容易使用serialize函数来获取所有表单数据。 jQuery将表单传递给服务器,因此您不必担心获取所有值。如果将它与validate插件结合使用,您可能会发现它更容易一些!

http://bassistance.de/jquery-plugins/jquery-plugin-validation/