表单序列化正在发送数据
Form Serialization sending data
我有一个关于PHP/jQuery中表单序列化的问题。下面是我的代码:
<form name="myForm" method="post" action="page.php">
<table>
<tr>
<td>Field 1</td><td>Field 2</td><td>Field 3</td>
</tr>
<?php
$i = 0;
while ($tempInfo=mysql_fetch_array(query)) {
$field1 = $tempInfo['field1'];
$field2 = $tempInfo['field2'];
$field3 = $tempInfo['field3'];
?>
<tr>
<td><input type="hidden value="<?php echo $field1?>"> name=testValue</td><td><?php echo $field2 ?></td><td><?php echo $field3?></td><td><input type="checkbox" name="myCheckboxes[]" id="myCheckboxes" value="getReport_<?php echo $i;?>" /></td></tr>
<?php
}
?>
</table>
<input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" /></form><div id="myResponse"></div>
然后是jQuery代码:
<script type="text/javascript">
function submitForm() {
var form = document.myform;
var dataString = $(form).serialize();
$.ajax({
type:'POST',
url:'report-gen.php',
data: dataString,
success: function(data){
$('#myResponse').html(data);
}
});
return false;
}
</script>
问题是,正在发送数据,但只发送最后一行的数据,而不是基于复选框。如何确保发送的唯一数据是选中复选框的数据?
如果您有多个具有相同名称的字段,如果名称没有以[]
结尾(而testValue
没有),PHP将丢弃除最后一个字段之外的所有字段。重命名输入。
您可以将所有数据放在复选框中,并在返回时对其进行解析,而不是使用隐藏字段。例如,将值更改为:
value="getReport_<?php echo $i;?>|$field1"
要获得不同的值,请执行
list($report, $field1) = explode("|", $checkbox_value);
相关文章:
- 序列化数据属性中对象的最可靠方法
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- PHP未从AJAX接收序列化数据
- 表单序列化正在发送数据
- 序列化数据和 onRender in Marionette.CompositeView 之间的区别
- 什么是数据序列化
- Jquery 数据表 序列化程序之后 ASP.NET 日期格式
- 使用$.post将jquery mobile的序列化数据传递到PHP
- Ajax数据表单序列化防止双重提交
- 如何在 Express/Node.js 中反序列化 JSON 数据
- 在复合视图中序列化数据
- 为什么 AJAX 在部分数据序列化方面失败
- jQuery form 使用 TinyMCE 序列化 CodeIgniter 中缺少的数据
- 如何发布序列化数据以及 jQuery.getScript() 调用
- 节点.js快速护照.js - 数据不会序列化
- JSON - 为什么要序列化和发送数据
- 将序列化表单以及一些其他数据发送到控制器
- jQuery 序列化数据和 PHP $_POST 不匹配
- Javascript Jquery动态Form数据序列化
- PHP 将数据序列化回 JavaScript