【问题标题】:Sending data to PHP using AJAX使用 AJAX 向 PHP 发送数据
【发布时间】:2015-10-21 04:52:45
【问题描述】:

在发布此问题之前,我已经搜索了我的问题,但未能找到解决方案。 我需要向 php 文件发送一个 json 字符串,但无法这样做,有人可以帮我解决以下问题:我是 php 和 jquery 的新手,正在苦苦挣扎,需要您的合作。

我有一个捕获文本文件数据的函数:

function updateVal() {
var node_list = document.getElementsByTagName('input');
var c = 0;
var fieldName = [];
var fieldText = []
var ID = [];
for (var i = 0; i < node_list.length; i++) {
    var node = node_list[i];
    if (node.getAttribute('type') == 'text') {
        fieldName[c] = node.name;
        fieldText[c] = node.value;
        ID[c] = node.id;
        c++;
    }
}
var postData = {
    fieldName: fieldName,
    fieldText: fieldText,
    ID: ID
};
 var dataString = JSON.stringify(postData);


console.log(JSON.stringify(postData));
$.ajax({
        type: "POST",
        dataType: "json",
        url: "update.php",
        data: {myData:postData}
        })

//return JSON.stringify(postData);
}

我的update.php是这样的:

<?php
$json = $_POST['json'];
$result = json_decode($json);

echo $result;
echo $_POST['myData']);?>

加载时:我收到以下错误:

加载资源失败:服务器响应状态为 500(内部服务器错误)

此外,我不确定数据是否发送到 php。 请专家验证一下。

【问题讨论】:

  • 试试data: JSON.stringify(postData),
  • @Tushar 不工作。仅内部服务器错误,表示无法解码值
  • 试试contentType: 'application/x-www-form-urlencoded; charset=UTF-8', data: {json: JSON.stringify(postData),
  • 我认为这行得通,但是我如何查看字符串是否正在传输到 php。我尝试回显,但没有显示任何内容。
  • 为什么不直接var_dump($_REQUEST) 看看你得到了什么?也试试@Tushar 告诉的内容

标签: javascript php jquery html ajax


【解决方案1】:

500(内部服务器错误)表示服务器端出现问题。因此,请查看 apache 错误日志以获取更多详细信息

你可以在这里找到 apache 日志/var/log/apache2/

【讨论】:

    【解决方案2】:

    在客户端(javascript 代码):

    data: JSON.stringify(postData)
    

    在服务器端(PHP 代码):

    json_decode($_POST["data"])
    

    【讨论】:

      【解决方案3】:

      u 用 return 语句注释了函数的右大括号。 改变这个:

      //return JSON.stringify(postData);}
      

      到:

      //return JSON.stringify(postData);
      }
      

      还有:

      data: JSON.stringify(postData),
      

      在更新.php

      $json = $_POST['myData'];
      $result = json_decode($myData);
      
      var_dump($result);
      

      【讨论】:

      • 抱歉,这是一个错字,更新了我的问题以反映更改
      • 我不知道这与内部服务器错误有什么关系
      • ini_set("display_errors", "1");错误报告(E_ALL);你可以试着把这些来检查是否有任何错误。或检查 apache 错误日志
      • @NullPoiиteя 我能够克服内部服务器错误,但是如何确保正确传递 json 对象?你能帮忙吗
      【解决方案4】:

      @Tushar 的评论帮助我解决了问题

      contentType: 'application/x-www-form-urlencoded; charset=UTF-8', data: {json: JSON.stringify(postData)
      

      【讨论】:

        【解决方案5】:

        向php页面发送Ajax请求以获取数据

        $.ajax({ method: "POST", // it may be Get url: "some.php", //page where you sent request data: { name: "John", location: "Boston" } //attibutes you want to take on that page }) .done(function( msg ) { // sucessfull reponse alert( "Data Saved: " + msg ); });
        

        【讨论】:

          猜你喜欢
          • 2012-03-04
          • 2016-03-09
          • 2014-01-11
          • 2017-02-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多