将 jQuery 数组传递给 PHP (POST)

Posted

技术标签:

【中文标题】将 jQuery 数组传递给 PHP (POST)【英文标题】:Passing a jQuery array to PHP (POST) 【发布时间】:2018-07-25 01:51:18 【问题描述】:

我想使用 jQuery 向 php(POST 方法)发送一个数组。

这是我发送 POST 请求的代码:

$.post("insert.php", 
    // Arrays
    customerID: customer,
    actionID: action
)

这是我读取 POST 数据的 PHP 代码:

$variable = $_POST['customerID']; // I know this is vulnerable to SQLi

如果我尝试读取使用$.post 传递的数组,我只会得到第一个元素。 如果我使用 Fiddler 检查 POST 数据,我会看到 Web 服务器以“500 状态代码”回答。

如何在 PHP 中获取完整的数组?

感谢您的帮助。

【问题讨论】:

您遇到什么错误?并显示您的 php 代码 jQuery Ajax POST example with PHP的可能重复 我的 IDE 没有出现错误。如果我使用 fiddler 检查发布数据,我会收到“HTTP 状态 500”错误。 如果你得到一个状态 500,那么在某处有一个错误信息! 500 通常表示处理 POST 的 Web 服务器遇到了异常情况。如果可以,您应该验证服务器是否配置正确。否则你无能为力。 【参考方案1】:

要将数据从 JS 发送到 PHP,您可以使用 $.ajax :

1/ 使用“POST”作为typedataType是你想要接收什么样的数据作为php响应,url是你的 php 文件和 data 只是发送你想要的。

JS:

var array = 
                'customerID': customer,
                'actionID'  : action
            ;

$.ajax(
    type: "POST",
    dataType: "json",
    url: "insert.php",
    data:
        
            "data" : array    

        ,
    success: function (response) 
        // Do something if it works
    ,
    error:    function(x,e,t)
       // Do something if it doesn't works
    
);

PHP:

<?php

$result['message'] = "";
$result['type']    = "";

$array = $_POST['data']; // your array 

// Now you can use your array in php, for example : $array['customerID'] is equal to 'customer';


// now do what you want with your array and send back some JSON data in your JS if all is ok, for example : 

$result['message'] = "All is ok !";
$result['type']    = "success";

echo json_encode($result);

这是你要找的吗?

【讨论】:

是的,这就是我要找的!谢谢!如果我有足够的声誉,我会投票给你的答案。

以上是关于将 jQuery 数组传递给 PHP (POST)的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 用 post() 传递数组给 php

如何使用 POST 方法将 javascript/jQuery 变量传递给 PHP [重复]

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

将php数组传递给jquery函数

将 PHP 数组传递给外部 jQuery $.ajax

通过 jQuery AJAX 将字符串数组传递给 C# WebMethod