【发布时间】:2017-02-01 23:31:39
【问题描述】:
这是在我的 javascript 代码中。变量 dataStore 是一个有效的 JSON 对象,并且 JSON.stringify 工作正常 - 我用 console.log() 进行了测试以确保。
我是 jQuery 新手,有一段时间没有编写 CGI 应用程序,所以我可能在这里做错了。
jQuery.post("taskmanager.php", JSON.stringify(dataStore), function (returnData) {
alert(returnData);
});
taskmanager.php 脚本与我的其他文件(taskmanager.html、taskmanager.css、taskmanager.js)位于同一文件夹中。此文件夹位于我的 Windows7 文件夹 E:\JamesLaderoute\MySoftware\WebApp\TaskManager\code
我不确定要在 taskmanager.php 脚本中添加什么。我想我可以做一些简单的事情,比如:
<?php
$data = $_GET["data"];
echo "done";
?>
我不明白的是,php 脚本如何知道我的 JSON 字符串化信息被称为“数据”。
另外,我认为 jQuery.post() 将脚本名称作为第一个参数,然后是要发送到脚本的数据,然后是当脚本通过 echo 调用。
alert() 确实被调用了,但它显示的是 php 脚本而不是字符串“done”
我搜索了互联网(一点点)并找到了使用称为 AJAX 的东西将数据发送到 php 之类的脚本的示例。
我通过一个小例子学得最好,有没有一个很好的例子可以指出我所缺少的?我如何让它发挥作用?
最终,我计划获取 JSON 数据并将其保存到服务器上的文件中。我需要用真正的服务器运行这一切吗?现在我没有使用一个,但我确实有 WAMP 设置,所以如果需要的话我可以使用它。
感谢所有为我的问题发布答案的人。我正在编辑这篇文章,以展示我最终用来让我的应用程序运行的实际代码。
JavaScript 代码:
alert(returnData); });
$.ajax({
url : "taskmanager.php" ,
type : 'POST',
data : JSON.stringify(dataStore),
success : function(res) {
// Successfully sent data
console.log(res);
},
error: function(err) {
// Unable to send data
console.log(err);
}
});
PHP 代码:
<?php
$contents = file_get_contents('php://input');
$data = json_decode( $contents );
file_put_contents( "taskdata.json", "data=".$contents );
echo "<br>done</br>";
?>
【问题讨论】:
-
需要先运行服务器才能在页面中使用ajax,然后才能运行php
-
@charlietfl:谢谢。我现在将我的代码复制到我的 WAMP /www 区域,我看到它现在正在尝试运行 .php 文件。使用这篇文章的其他答案的一部分,我现在可以运行一些东西了。
标签: javascript php jquery json ajax