Как передать несколько флажков на PHP через JQUERY

Я изменил свой код, я использовал firebug console.log для определения погоды, когда php получает массив, переданный или нет. и firebug отображает это – rescheck [] = 2 & rescheck = 1 & rescheck = 3

Я думаю, что php получает массив, если THATS, какой должен быть массив в php.

SO, если это правильно, как вставить этот массив в базу данных? или как его зацикливать? цикл foreach, сделанный ive, не работал.

КОД 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.

room_id – это массив, поэтому, если вы хотите получить значение для каждого, сначала вам нужно собрать все значение.

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

ваш ниже код будет передавать только объект Array jquery из [name=rescheck[]]:checked to room_id

Вместо этого вам нужно будет создать массив и нажать на него значения, как это

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

В jQuery вам может быть проще использовать функцию serialize для получения всех данных формы. jQuery передает форму серверу, поэтому вам не нужно беспокоиться о получении всех значений. Если вы используете его вместе с плагином проверки, вы можете найти его немного проще!

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

Это то, что я делаю на моем сайте для сохранения в db списка флажков с jquery и ajax-вызовом. Он создает массив и передает его на вызов ajax, а скрипт php обрабатывает массив. Если вы получаете какую-либо ошибку здесь, вы должны отлаживать массив js с помощью firebug, чтобы убедиться, что он сформирован правильно.

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 }