我已经修改了我的代码,我使用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获取它。
答案 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/