【问题标题】:AJAX Submit to PHP file not returning the dataAJAX提交到PHP文件不返回数据
【发布时间】:2015-10-23 16:17:30
【问题描述】:

当我尝试通过 AJAX 将数据提交到 PHP 文件时,提交工作正常,并且我可以从 PHP 文件回显一条消息。但是,当我尝试回显我正在提交的数据,或者回显一条消息,确认数据与 PHP 文件中的另一个变量匹配(确实如此)时,我仍然收到一条成功消息,但它说数据是不一样。

我是开发新手,有点挣扎。任何帮助都会很棒。

AJAX

$.ajax({
    type: "POST",
    url: "/check-cust.php",
    data: "1234",
    success: function(data) {
        if (data == "") {
            console.log("success, but no return");
        } else {
            alert(data); // show response from the php script.
        }
    },
    error: function() {
        alert("not working");
    }
});

PHP

$temp_cust_id = "1234";

$data = $_POST['data'];

if ($data == $temp_cust_id) {
    echo "it works";
} else {
    echo "it doesnt work";
}

可能是因为我提交了一个与字符串变量不同的 JSON 数组吗?不过这只是猜测!

【问题讨论】:

  • 如果您不确定自己的代码,请分别检查每个步骤以确定哪一行是真正的问题,在您的情况下,看看需要做多少事情才能在您的 ' 中获得正确的结果控制器'。 _POST 中必须有数据,它必须在 data 属性中,然后它必须等于另一个变量......事实上你没有得到“它有效”,并不意味着你没有得到数据......使用 var_dump 或 print_r学习如何前。 _POST 看起来就像你可以阅读它,我敢打赌它会很有帮助......
  • 谢谢大家。从我这边来看,这是一个严重的错误。非常感谢您的快速帮助

标签: javascript php jquery ajax


【解决方案1】:

你发送数据的方式不对,

data: {"data","1234"}
        ^      ^
        name    value

总而言之,

$.ajax({
    type: "POST",
    url: "/check-cust.php",
    data: {data:"1234"},// this the line in which you have error.
    success: function(data) {
        if (data == "") {
            console.log("success, but no return");
        } else {
            alert(data); // show response from the php script.
        }
    },
    error: function() {
        alert("not working");
    }
});

然后在php文件中,

$temp_cust_id = "1234";

$data = $_POST['data'];

if ($data == $temp_cust_id) {
    echo "it works";// it will echo this for current output.
} else {
    echo "it doesnt work";
}

【讨论】:

    【解决方案2】:

    这个假的data: "1234",,应该是:

    data: {
     data : 1234
    }
    

    或者给一个更好的名字:

    data: {
      myData : 1234
    }
    

    在服务器端:

    $_POST['myData'];
    

    另一种使用查询字符串的方法:

    data : 'myData=Hello',
    // or data : 'firstParam=Hello&secondParam=Mate',
    

    【讨论】:

      【解决方案3】:

      用于比较字符串strcmp

      AJAX

      data: {"data":"1234"}
      

      PHP

      if (!strcmp($data,$temp_cust_id))
          echo "it works";
      

      【讨论】:

        【解决方案4】:
        post_data='1234';
        
         $.ajax({
            type: "POST",
            url: "/check-cust.php",
            data: "post_data="+post_data, //-------->>>Pass the data like this
        success: function(data) {        
          if (data == "") {  
          console.log("success, but no return");
        
        
           } else {
        
        
          }
        

        并在 php 文件中使用:

        $_POST['post_data'];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-21
          • 2013-10-29
          • 1970-01-01
          • 2015-08-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多