我在js文件中从中获取值: j-6ren">
gpt4 book ai didi

javascript - 为什么我无法从 jQuery (PHP) 接收数据?

转载 作者:行者123 更新时间:2023-12-03 11:06:09 25 4
gpt4 key购买 nike

我有一个 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 中有太多不需要的额外代码。您不需要这些 chkArrayselected 变量。

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

关于javascript - 为什么我无法从 jQuery (PHP) 接收数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27848531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com