将 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': '&lt;?php echo $items;?&gt;' ; @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的主要内容,如果未能解决你的问题,请参考以下文章

将字符串数组作为 POST 传递给 PHP

PHP使用POST传递json数据的接收与处理问题

将JavaScript数组传递给PHP数组[重复]

如何通过 JQuery Post 传递 Javascript 数组,以便可以通过 PHP $_POST 数组访问其所有内容?

jQuery 用 post() 传递数组给 php

PHP表单到数组[关闭]