【问题标题】:jquery post method to send javascript array to php doesn't work for me, why?将javascript数组发送到php的jquery post方法对我不起作用,为什么?
【发布时间】:2011-07-03 12:28:37
【问题描述】:

我在网上查看如何发送 Java 脚本数组,比如这个:

var array = ["thing1", "thing2", "thing3"];"

到我的服务器上的 php 文件。

然后我遇到了 jQuery .post() 方法,但是当我使用它时,我的 php 文件仍然是空的!

我使用的代码是:

var array = ["thing1", "thing2", "thing3"];
$(document).ready(function() {
    $.post( 'hs.php', array, function(data, statusText) {
        alert("Uploaded")
    });
})

但是我对php没有太多经验,我不知道php应该为空还是有一些代码来检索数组!我想要的只是将 javascript 数组存储在服务器文件上,这样我就可以在页面加载时再次读取该数组。

我做错了什么?
有人可以展示工作 html 和 php 代码的简短示例吗?

【问题讨论】:

  • 您不能发送“数组”,只能发送字符串。有几种方法可以序列化数组以通过 HTTP 传输。您需要使用匹配方法对其进行反序列化。你用什么代码来发送它?你用什么代码来解码它?报告了哪些错误? “php文件”怎么可能是空的?它必须有程序代码才能做任何事情。你的意思是你得到一个空白的回应?如果是这样,那么添加调试代码以找出发生了什么。
  • 好的,我是这样尝试的: var array = ["thing1", "thing2", "thing3"] $(document).ready(function() { $.post('hs. php', array, function(data, statusText) { alert("Uploaded") } ); }) 但是我对 php 没有太多经验,我不知道 php 应该为空还是有一些代码来检索数组!我想要的只是将javascript数组存储在服务器文件上,这样我就可以在页面加载时再次读取该数组!
  • 看看docs for data——它接受一个字符串或一个对象,而不是一个数组。

标签: php jquery arrays post


【解决方案1】:

您可以为此使用JSON。 JSON encode javascript 数组并将其发送到您的 php 和服务器端的 decode the json-decoded array。

JSON 是一种标准表示法,它将对象(数组、类对象等)转换为字符串表示法,可以通过 http 传递。

POST 变量存储在 jQuery post/ajax 的 data 选项中。现在假设您想将以下数组传递给 php:

var my_array = ["my", "name", "is", "foo", "bar"];

然后您可以使用 jQuery 的 JSON 编码插件对其进行 json 编码。

var my_json_val = $.JSON.encode(my_array);

然后您可以使用以下方法将此值传递给服务器:

$.post({
url: 'my_url',
data: { my_json_name: my_json_val}
});

在服务器端你可以这样做:

$my_json_encoded = $_POST['my_json_name'];
$my_json_val = json_decode($my_json_encoded);

【讨论】:

  • 感谢您对我的帮助,我知道有一种方法可以使用 JSON,但我根本不知道如何将它与 javascript 数组一起使用并将其发送到 php!如果你至少可以指导我一些初学者教程或指导我正确的方向?
  • 对不起,我真的是新手,所以我需要澄清一下你的答案!我了解我需要放入 html 代码并添加 jQuery 的 JSON 编码插件的前 3 个脚本。但是在哪里放置第四个脚本?第三个脚本中的“url:'my_url'”应该是我的php文件,例如url:'test.php'还是其他东西?
  • 好的,这是链接:kineticstudio.x10.mx/hs 您可以在 html 中看到我添加了 jQueru 的 JSON 插件和您发布的第一个树脚本。在 php 文件中,我添加了您发布的第四个脚本。当我尝试 php 时保持不变!为什么?
猜你喜欢
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-09
  • 1970-01-01
相关资源
最近更新 更多