工作正常。我很惊讶突然发现,复选框值不会通过json在$ _POST中传递。我似乎无法理解为什么。 希望有人可以帮助我.Below是php中的复选框。
$subjects_id= $row['subid'];
<td><input type="checkbox" name="sub['.$subjects_id.']" id="sub" value=""> </td>';
JSON
$("document").ready(function(){
$(".form").submit(function(){
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "response.php", //Relative or absolute path to response.php file
data: data,
success: function(data) {
$(".the-return").html(
"Favorite beverage: " + data["favorite_beverage"] + "<br />Favorite restaurant: " + data["favorite_restaurant"] + "<br />Gender: " + data["gender"] + "<br />JSON: " + data["json"]
);
alert("Form submitted successfully.\nReturned json: " + data["json"]);
}
});
return false;
});
});
我确信JSON没有问题。但我怀疑我的PHP的复选框。在JSON键值对中,虽然已选中复选框,但未传递该复选框!
EDIT ::
在我的故障排除中,我发现下面的一组复选框实际上与上面的内容相冲突。所以当它们显示上面没有收集的复选框值时。当我注释掉这些时,会收集上面的复选框值!
<table class="small-12 medium-12 large-6 large-centered columns" class="availability">
<tr>
<th></th><th>Weekdays</th><th>Weekends</th>
</tr>
<tr>
<td class="text-right">Morning<br/>(8am-12m)</td>
<td>
<div class="switch demo3">
<input type="checkbox" name="m_week" id="m_week">
<label><i></i></label>
</div>
</td>
<td>
<div class="switch demo3">
<input type="checkbox" name="m_end" id="m_end">
<label><i></i></label>
</div>
</td>
</tr>
<tr>
<td class="text-right">Afternoon<br/>(12am-6m)</td>
<td>
<div class="switch demo3">
<input type="checkbox" name="a_week" id="a_week">
<label><i></i></label>
</div>
</td>
<td>
<div class="switch demo3">
<input type="checkbox" name="a_end" id="a_end">
<label><i></i></label>
</div>
</td>
</tr>
<tr>
<td class="text-right">Evening<br/>(6am-10m)</td>
<td>
<div class="switch demo3">
<input type="checkbox" name="e_week" id="e_week">
<label><i></i></label>
</div>
</td>
<td>
<div class="switch demo3">
<input type="checkbox" name="e_end" id="e_end">
<label><i></i></label>
</div>
</td>
</tr>
</table>
答案 0 :(得分:0)
如果选中,您的复选框将发送为true,但如果未选中则为空。您可以使用以下方法更正它:
$('checkbox').each(function(){
$(this).val( checkbox[0].checked ? "true" : "false" );
});
复选框。
这会将复选框的值设置为&#34; true&#34;或&#34;假&#34; (value属性是一个字符串)。