AJAX:$ _GET不返回任何值

时间:2015-04-10 05:03:36

标签: javascript php jquery ajax

一直试图解决这个问题几个小时......

我试图通过从<input>标记中包含的jQuery滑块中获取值来使用AJAX。 AJAX不会失败(请参阅代码),当我console.log我尝试通过Data:发送的变量时,它会正确打印出来。

注意:jQuery和php位于同一页面上,因此不会使用url:参数或任何您称之为的参数。

以下是<script>部分:

   jQuery(function($){
        $("input[id='protein-slider']").ready(function(){
            var p_range;
            var request;
            $("input[id='protein-slider']").each(function () {
            p_range = $(this).val();
            });
            console.log(p_range) //Returns correct values

            request = $.ajax({
                type: "POST",
                data: p_range,
            });  
            request.done(function (response, textStatus, jqXHR){
                console.log("Hooray, it worked!"); //This prints, no error
            });
            request.fail(function (jqXHR, textStatus, errorThrown){
                console.error(
                    "The following error occurred: "+
                    textStatus, errorThrown
                );
            });
        });
    });

与此函数相关的<?php ?>代码为:

                echo $_SERVER['QUERY_STRING']; //returns nothing
                $income_data = $_GET['p_range']; 
                echo $income_data; //returns nothing
                var_dump($income_data); //returns "NULL"

我已经忘记了我所做的所有其他方法以及我在这里阅读的其他无数的灵感。似乎没有工作,而且它变得非常令人沮丧......

希望你们其中一个人能发现我做蠢事......

谢谢!

2 个答案:

答案 0 :(得分:2)

您的ajax用于POST,将其更改为GET

request = $.ajax({
    type: "POST",
    data: p_range,
}); 

或者你在php中访问你的params

$var = $_POST['p_range'];

答案 1 :(得分:1)

您的数据需要是键/值对

data: {p_range: p_range},

$income_data = $_POST['p_range'];