如何通过JQUERY将多个复选框传递给PHP
我已经修改了我的代码,我使用了firebug console.log来检测php是否获取数组传递的天气。和萤火虫显示此 - rescheck [] = 2 & rescheck = 1 & rescheck = 3如何通过JQUERY将多个复选框传递给PHP
我认为PHP获取数组,如果这是什么PHP数组应该是。
SO的家伙,如果这正确的如何将数组插入数据库?或如何循环它? foreach循环iive没有奏效。
jQuery代码:
$('#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。
这就是我在ibn网站上用jquery和ajax调用保存到db的复选框列表。它创建一个数组并将其传递给ajax调用,php脚本处理该数组。 如果你在这里得到任何错误,你应该用萤火虫调试js数组,以确保它正确地形成。
js脚本:
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
}
我保存了$ c_array = $ _ POST ['cvalue']; – user628961 2011-03-07 14:14:31
抱歉没有看到它。看看我的其他答案我认为我们得到它:) – Kreker 2011-03-07 16:39:45
wheres你的其他答案? – user628961 2011-03-07 16:44:12
ROOM_ID是一个数组,所以如果你想获得每个值,您需要首先获得所有值在一起。
var room_id_string = '';
for(i=0;i<room_id.length;i++){
room_id_string += room_id.eq(i).val() + ',';
}
你的下面的代码将只通过的[name=rescheck[]]:checked
阵列jQuery对象以room_id
取而代之的是,你必须创建一个数组,并把它推值这样
var room_id = Array();
$('[name=rescheck[]]:checked').each(function(){
room_id.push($(this).val());
});
我试过你的代码。仍然不工作。我不明白为什么 – user628961 2011-03-07 14:31:19
我将如何让我的PHP代码获取数组?并请检查我修改后的代码 – user628961 2011-03-08 03:15:36
以上的男人。我试过你的代码,它在jQuery中可以。我提醒了room_id,它显示了所有的ID。但是当我检查php(那是当jquery arrray被传递时),我使用console.log来查看天气数组是否真的被传递,但唯一传递的是数组的最后一个值。 – user628961 2011-03-08 14:25:43
在jQuery中你可能会更容易使用序列化函数来获取所有的表单数据。 jQuery将表单传递给服务器,因此您不必担心获取所有值。如果您将它与验证插件一起使用,您可能会发现它更容易一些!
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
你能告诉我如何使用序列化,它有什么用处? – user628961 2011-03-07 14:13:07
在您的ajax中将“data:{...}”行更改为“data:$(”#formId“)。serialize(),”其中formId是表单的ID(或者您可以使用引用表单如果先前存储在一个变量中,则应从表单中获取所有信息并创建对象以传递给服务器 – Alex 2011-03-07 14:53:57
呵呵,http://api.jquery.com/serialize/供参考 – Alex 2011-03-07 14:55:02
@user,我已经编辑你的问题,以使它更好一点。请停止无理取消我的修改。 – Shoe 2011-03-07 14:07:58
我没有撤消您的编辑。我甚至不知道如何撤消 – user628961 2011-03-07 14:19:23
@Charlie Pigarelli简单,老虎。看起来他在提交更新时可能正在编辑他的代码。 – Wiseguy 2011-03-07 14:43:37