Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从AJAX获取POST值_Php_Jquery_Ajax - Fatal编程技术网

Php 无法从AJAX获取POST值

Php 无法从AJAX获取POST值,php,jquery,ajax,Php,Jquery,Ajax,无法获取筛选器的值。不知道为什么。我做错了吗? 作为记录,我对ajax还不熟悉,已经看过很多地方,很多地方都没有得到相同问题的真正答案 JQUERY:index.php HTML:index.php 控制台日志: 警告:mysql_query[function.mysql query]:第36行的/home/news/news.php中使用密码NO拒绝用户@'localhost'的访问 警告:mysql_query[function.mysql query]:无法在第36行的/home/news

无法获取筛选器的值。不知道为什么。我做错了吗? 作为记录,我对ajax还不熟悉,已经看过很多地方,很多地方都没有得到相同问题的真正答案

JQUERY:index.php

HTML:index.php

控制台日志:

警告:mysql_query[function.mysql query]:第36行的/home/news/news.php中使用密码NO拒绝用户@'localhost'的访问 警告:mysql_query[function.mysql query]:无法在第36行的/home/news/news.php中建立到服务器的链接 //这是我的回声 从状态为3的测试表中选择*并按1和“某些值”按测试表顺序排列。日期说明、nid说明限制0、6 警告:mysql_query[function.mysql query]:第42行的/home/news/news.php中使用密码NO的用户@'localhost'的访问被拒绝 警告:mysql_query[function.mysql query]:无法在/home/news/news.php中建立到服务器的链接

在页面上,我得到:


选择*from test_table where status='3',ORDER BY test_table.date DESC,nid DESC limit 0,6

您可能没有在正确的位置查看php代码是否返回正确的值。您的AJAX请求只请求数据,但不处理数据,您没有将其保存在变量中,也没有在回调函数中使用它或修改您的网页

你可以这样做:

$(document).ready(function(){
    $.ajax({
        url: 'news.php',
        type: "POST",
        data: {filter:'some value'},
    }).done(function(data) {
         // Do something with your data here, say output to console
         console.log(data);
    });
});
这只会将服务器输出输出输出到控制台,您必须执行其他操作才能看到网页中的更改。你在这里做什么取决于你自己,以及你到底想看到什么

您应该能够在使用的任何浏览器的“网络”选项卡上查看服务器响应

关于您的问题更新:

首先,您应该使用mysqli函数,而不是mysql。 在任何情况下,您都需要创建一个连接对象,很明显,您并没有从警告错误中使用它。 最重要的是,您没有对输入进行消毒,也没有使用准备好的语句。请参阅最后一个链接,以获取这些语句的示例。如果不这样做,您将向SQL注入敞开大门

至于您的网页没有任何更改,您有两个问题:

您需要让JS对服务器输出进行处理。 您没有正确使用mysqli执行查询。 1的解决方案是修改回调函数的console.log部分以修改网页。 2的解决方案是正确使用MySQL php接口。
重申一下,请查看准备好的语句并重新编写您的查询,它们非常重要,而且是实现相对较大安全性提升的一个非常简单的元素

ajax将post变量发送到php脚本,php脚本确实响应了该值,但您没有用ajax捕获输出以将其显示在屏幕上。尝试添加到ajax中

$(document).ready(function () {
        $.ajax({
            url: 'news.php',
            type: "POST",
            data: {filter: 'some value'}
        }).done(function (data) {
            alert(data);
        });
    });

您没有看到它,因为您正在以JSON的形式发送数据。这就是为什么$\u POST global为空,要访问以JSON形式发送的POST数据,需要执行以下操作:

json_decode(file_get_contents("php://input"))

是的,你做错了。你对你的代码有什么期望?你能看到请求是否真的被触发了吗?使用chrome,按F12。当开发工具打开时,转到它们的设置,并确保已检查日志xmlhttprequests。然后让控制台保持打开状态,刷新页面以查看ajax调用,并在此处复制粘贴输出。另外,我不喜欢在'some value'后面加逗号。}看起来不错,不过。。。它不会对网页产生影响,您从未对响应做过任何处理。我希望得到我的值lol。但说真的,该值将用于mysqli查询。@ThomasNikoleris我看不到该选项。我用的是Firefox我得到了一个绿点指示200 OKI修改了响应以使其更完整。希望这会更有帮助。我已经用更多的信息更新了我的问题。我似乎在日志中获得了我的值,但在页面本身上没有。我最初是用注释回复的,但由于我的注释太大,我相应地更新了我的答案。虽然此代码可能会回答这个问题,提供有关此代码为什么和/或如何回答此问题的其他上下文,可以提高其长期价值。@JayBlanchard是的,抱歉,这是我评论的继续。我会编辑并粘贴到这里,请改用console.log。@JayBlanchard我选择了alert,这样他就不会错过它了。PS谢谢你对删除我的其他邮件的评论answer@ThomasNikoleris我已经更新了我的问题,希望有帮助!
$(document).ready(function(){
    $.ajax({
        url: 'news.php',
        type: "POST",
        data: {filter:'some value'},
    }).done(function(data) {
         // Do something with your data here, say output to console
         console.log(data);
    });
});
$(document).ready(function () {
        $.ajax({
            url: 'news.php',
            type: "POST",
            data: {filter: 'some value'}
        }).done(function (data) {
            alert(data);
        });
    });
json_decode(file_get_contents("php://input"))