将 PHP $_POST 数组传递给 javascript/jQuery 以通过 ajax 发送回 PHP
Posted
技术标签:
【中文标题】将 PHP $_POST 数组传递给 javascript/jQuery 以通过 ajax 发送回 PHP【英文标题】:Passing a PHP $_POST array to javascript/jQuery to send back to PHP via ajax 【发布时间】:2020-01-25 16:51:33 【问题描述】:我需要将页面上当前可用的$_POST
数组传递到我的javascript 中。
jQuery 需要将 $.post
这个数组返回给 php 并得到处理。
我已经尝试了以下方法,我的 jquery 和 post 都很好,但我的 echo $items;
在 php 端的收据上画了一个空白。
有什么想法吗?
php:
$items = json_encode($_POST);
jquery:
var data =
'action': 'someaction',
'items': <?php echo $items;?>
;
$.post(ajaxurl, data, function(response)
console.log( response ) ;
);
我希望 $_POST
数组通过 jquery 中的 $.post
传递回我的 php 函数。
【问题讨论】:
没有意义。在 ajax 发送之前,$_POST
中不会有任何内容,除非还涉及先前提交的表单。如果确实有表单,那么您根本不需要使用辅助 ajax
你为什么要用一些数据来打网球?你在服务器上有你的$_POST
,请对待它。不要将其发送回客户端以将其重新发送到服务器
也许是var data = 'action': 'someaction', 'items': '<?php echo $items;?>' ;
@anon 看起来与 OP 已有的相同
@charlietfl 只是在回显 $items 之前添加单引号
【参考方案1】:
是的,我找到了答案。
我缺少的行是:
<?php echo "var items = " . $items . ";" ;?>
所以这对我有用:
**PHP**
$items = json_encode( $_POST ) ;
**JS**
var items;
<?php echo "var items = " . $items . ";" ;?>
是的,已经提交了一个表单……所以我必须捕获提交的内容。超时发生在服务器端,所以我将发布的内容与带回的内容进行比较......我使用 ajax 来处理这两者。杂乱。但如果我找到更好的解决方案,我会使用它。
【讨论】:
以上是关于将 PHP $_POST 数组传递给 javascript/jQuery 以通过 ajax 发送回 PHP的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 JQuery Post 传递 Javascript 数组,以便可以通过 PHP $_POST 数组访问其所有内容?