【问题标题】:Jquery ajax post to php but is saying no value in variableJquery ajax 发布到 php 但变量中没有值
【发布时间】:2014-01-12 19:18:27
【问题描述】:

我正在做一个即时搜索的事情,当我提交表单搜索表单时,它将向 PHP 发布一个 ajax 帖子。它发送了所有内容,但 PHP 页面显示该变量没有值,但数据显然正在发布。

        $('#search-form').submit(function(event) {
            event.preventDefault();
            $.ajax({
                type: "POST",
                url: "Search.php",
                cache: false,
                data: $("#search-form").serialize(),
                success: function(data) {
                    alert($("#search-form").serialize());
                    $("#searched").fadeIn("fast");
                    $("#results").empty();
                    $("#results").append(data);
                }
            });
            return false;
        });

【问题讨论】:

  • 你的js看起来不错,贴出你的php
  • 你在 print_r($_POST) 中得到了什么;在你的 php 文件中?
  • array (size=1) 'search-priddly' => string 'kenny' (length=5) 这就是 print_r($_POST) 所做的搜索文件很大,但它就像: if(isset($_POST['search-priddly'])){$search = mysql_real_escape_string($_POST['search-priddly']); mysql_query("SELECT * FROM login WHERE email = '$search'");}else{}
  • 请在你的成功函数中创建console.log(data),看看回调得到了什么,我认为此时响应是一个数组,所以你不能直接附加它(未经测试)

标签: javascript php jquery ajax post


【解决方案1】:

确保您在浏览器中打开了一个控制台,Firefox:bugzilla、Chrome 和 IE 都有内置的。它向您展示了异步请求中发生的情况。

在顶部的 php 文件中执行以下操作:

var_dump($_POST);

//OR DO THIS:
// print_r($_POST);

然后查看您的浏览器控制台以查看响应是什么。它应该吐出一个数组。你可以看到你的数据的名称是什么。这是调试任何 ajax 请求的最快方法。

另外,别忘了你用 .serialize(); 序列化了数据

【讨论】:

  • 在您的浏览器控制台中,应该有一个参数选项卡。它会告诉你发送了什么。如果它只显示一个参数,那是因为您序列化了数据。所以你需要反序列化它。
  • chrome 说 XHR 完成加载:“127.0.0.1/Search.php”。 jquery-1.10.2.js:8706 发送 jquery-1.10.2.js:8706 jQuery.extend.ajax jquery-1.10.2.js:8136 (匿名函数) Home.php?page=Board.php:114 jQuery. event.dispatch jquery-1.10.2.js:5095 elemData.handle
猜你喜欢
  • 2011-09-24
  • 2016-07-23
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多