为什么我不能从jQuery(PHP)接收数据
Why I can not receive data from jQuery (PHP)?
我有一个PHP形式:
<form action="" method="post" id="CheckBoxForm">
foreach ( $results as $result ) :
<input type="checkbox" class="chk" id="check_list[]" value="'.($result->meta_value).'"/>
<input type="submit" name="submit" value="Submit"/>
</form>
我在js文件中从中获取值:
jQuery('#CheckBoxForm').on('submit', function(e) {
var chkArray = [];
var CheckBoxForm=jQuery(this).serialize();
alert(CheckBoxForm);
jQuery(".chk:checked").each(function() {
chkArray.push($(this).val());
});
var selected;
selected = chkArray.join(',') + ",";
jQuery.ajax({
type:"POST",
url: "/wp-admin/admin-ajax.php",
data: selected,
success:function(data){
jQuery("#feedback_country").html(data);
}
});
return false;
});
});
如果我警报选择,它会给我值列表。所以脚本已经初始化并获取数据。
在脚本结束时,它接收反馈数据html(data)并将其发送回初始php文件。
从js文件(POST REQUEST)获取请求的PHP文件具有这样的代码:
foreach($_POST['check_list'] as $selected){
echo $selected."</br>";
}
它发回 0。我不明白出了什么问题。
你的 JavaScript 中有太多不需要的额外代码。 您不需要这些chkArray
或selected
变量。
jQuery('#CheckBoxForm').on('submit', function(e) {
var CheckBoxForm = jQuery(this).serialize();
jQuery.ajax({
type:"POST",
url: "/wp-admin/admin-ajax.php",
data: CheckBoxForm,
success:function(data){
jQuery("#feedback_country").html(data);
}
});
return false;
});
这应该是你所需要的。 serialize()
将从表单中获取所有值,并创建一个格式正确的字符串以发送到您的 PHP 脚本。
注意:您的 HTML 不正确,您的表单应如下所示:
<form action="" method="post" id="CheckBoxForm">
<?php foreach($results as $result): ?>
<input type="checkbox" class="chk" name="check_list[]" value="<?=$result->meta_value?>"/>
<?php endforeach; ?>
<input type="submit" name="submit" value="Submit"/>
</form>
您希望使用复选框上的 name
属性,而不是id
属性。
您的问题是您要发送单个字符串而不是键值对:
selected = chkArray.join(',') + ",";
...
data: selected,
虽然我不建议手动构建查询字符串 - serialize()
会负责正确的转义 - 但您可以发送清单字符串,如下所示:
data: {check_list: selected},
编辑:现在在php中,您将有一个$_POST['check_list']
变量,但这是一个逗号分隔字符串中的列表。因此,要将其转换为数组并循环访问它,您需要类似的东西:
$arr = explode(',', $_POST['check_list']);
foreach ($arr as $selected) {
echo $selected."</br>";
}
相关文章:
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- 巨大的数据和PHP错误
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- json-ajax动画防止通过php发送数据
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 将数据保存到数据库(ajax/php)后,使文本字段变灰/禁用
- 为什么数据没有从ajax传递到php
- 如何将JavaScript变量的数据传递到另一个php页面
- 使用外部ajax数据PHP绘制图表
- IE不发送发布数据PHP&jQuery
- 如何将数据 php 更改为 javascript json
- 如何插入数据 PHP JavaScript MySQL 与多个数组
- 将数据PHP(客户端)传递给C#(服务器端)
- 跨会话保存数据- php
- 从AJAX调用操作数据:PHP或Javascript
- 如何在jQuery中获取数据- PHP中的多重标签选择
- Ajax显示动态数据php在html下拉
- 使用azax &获取数据;php