将JSON表单JavaScript发送到PHP

时间:2018-03-09 12:09:22

标签: javascript php json

我试图使用JSON将数组从JavaScript传递给PHP。我使用JSON.stringify创建了一个JSON,我知道使用json_decode在PHP中对其进行解码但是如何通过呢?要清楚,这些变量在一个php文件中。

我想这样用:

<script>
var arr = getArray();
var myJSON = JSON.stringify(arr);
... passing myJSON to PHP ...
</script>
<?php
$arr = //get myJSON
?>

我试过了:

     <script>
        var signalff = ff(signal);
           request = $.ajax({
                type: "POST",
                url: "ecg_database.php",
                data: {myData:JSON.stringify(signalff)}
        });
    request.done(function (response, textStatus, jqXHR){
        console.log("Hooray, it worked!");
    });

    request.fail(function (jqXHR, textStatus, errorThrown){
        console.error(
            "The following error occurred: "+
            textStatus, errorThrown
        );
    });
   </script>
   <?php
        $obj = $_POST["myData"];
        echo $obj;
   ?>

在控制台中,我有一条消息&#34; Hooray,它有效!&#34;,但它没有通过$ obj的回声写任何东西。

1 个答案:

答案 0 :(得分:0)

你不能这样做。这就是您的代码所发生的事情:

  1. 用户转到网址
  2. 浏览器请求页面
  3. 服务器运行PHP。 $_POST["myData"]未设置。
  4. 服务器将结果发送给浏览器
  5. 页面中的JavaScript将数据发送到网址
  6. 服务器再次运行PHP 。此时$_POST["myData"] 设置为
  7. 结果可在response
  8. 中找到

    您有两个不同的请求和两个不同的回复。

    您在步骤5中发送的请求不会及时返回并追溯更改您在步骤2中发送的请求。

    将您的PHP分开,以便您有一个URL来生成原始页面,另一个用于处理您使用JavaScript发送的数据。

    然后使用JavaScript对response变量中的数据执行某些操作。