1

我正在把我的头发从这个上扯下来。我只是想教自己 php 做这件事。写一个json文件。

我的 php 可能是一大堆粪便,还有更多,到处都是 412 错误。但是将它移到 getJSON 中可以解决这个问题。我的 ajax 调用以某种方式无法将我的数据提供给 php,或者我的 php 函数没有正确创建文件。无论哪种方式,我都有一个空文件

我写了应该是一个很棒的概念原型证明,但事实上,php 部分或 ajax 调用可能是“失败的”。>__< 兄弟们看过来,我写了一个简单的demo。

我知道读取一个 json 文件然后保存一个 json 文件是很愚蠢的,但是让我在这个技术性问题上离开。我没有 test.json,而是有一个 servlet,它给了我 json。我只是将它作为 javaobject 保存在 javascript 中。没有汗水。但我测试了它,如下所示:

演示.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Demo</title>
<script type= "text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript" src="test1.js"></script>
</head>
<body>
<h1>Test1</h1>
</body>
</html>

测试.json

{"herp":1,"derp":2,"supersuper":3,"derpderp":5}

测试.js

变量新数据;

$(document).ready(function()
{
    $.getJSON('test.json', function(data)
    {
        console.log('test1.js');
        console.log(data.herp);
        console.log(data.derp);
        console.log(data.supersuper);
        console.log(data.derpderp);
        //alert('success');
        newData = data;
        console.log(newData);


            $.ajax({
           type: 'POST', 
           url: 'json.php',
           dataType: 'json',
           data: {"json":newData},
           data: {"json":JSON.stringify(newData)},
           success: function()
           {
          alert('Successful submission');
            },
           error: function(e)
            {
          alert("error" + e);
          console.log(this,arguments);
            }
      });

    });
});

json.php

<?php

    $json = $_POST['json'];
    $file = fopen('new_data.json', 'w+');
    fwrite($file, $json);
    fclose($file);


 ?>

我在 apache httpd 上运行它。例如,我只是在 chrome 上启动 localhost/demo.html 并阅读诊断信息。无论我做什么,new_data.json 都是空的。我什至试图只调用 php 文件并让它写一个文件。没有帖子。它什么也没做。无论如何,当我检查 apache 服务器(或任何地方)时,没有数据写入 new_data.json。它只是不存在。

[编辑] 我添加了打印错误消息的功能。php有问题。它返回一个错误,我不太确定发生了什么,这是我目前正在研究的消息:

    Object {url: "json.php", type: "POST", isLocal: false, global: true, processData: true…}[Object, "parsererror", SyntaxError]

拜托,有人能告诉我我做错了什么吗?我已经盯着这个看了好几个小时了。我愿意提供代表,如果需要,请在这方面对我自己的名誉进行评价,但除非我绝望,否则我不会问。

引用 PHP 到文件JSON 发布到文件搜索溢出RTM

4

1 回答 1

2

不管check() function做什么,希望是error less

你应该像json encode以前一样使用,echophp page

echo json_encode(array(check($_POST) ? 'true' : 'false'));

此外,尝试打电话可能会解决您的问题,例如ajaxgetjson callback

var newData;
$(document).ready(function()
{
    $.getJSON('test.json', function(data){
        console.log('test1.js');
        console.log(data.herp);
        console.log(data.derp);
        console.log(data.supersuper);
        console.log(data.derpderp);
        //alert('success');
        newData = data;
        console.log(newData);
        $.ajax({
            type: 'POST', 
            url: 'json.php',
            dataType: 'json',
            data: newData,
            success: function()
            {
                alert('Successful submission');
            }
        });
    });
});
于 2013-07-17T05:34:28.027 回答