AJAX请求不使用外部页面?

时间:2014-03-28 14:38:24

标签: javascript php jquery ajax

我一直坐在这里坚持两个小时试图弄清楚为什么这不起作用,所以我向大家求助于一些指导。

我有以下脚本,它会拉出当前在页面上检查的所有复选框,并将其title属性设置为names数组。每个标题都是一个字母a-e,具体取决于它们在特定部分的位置。这可能不是最好的方法,但由于以前的编码限制,这是最简单的解决方案。

names = [];
$('input:checked').each(function() 
    {
         names.push($(this).attr("title"));
    });

question_one_val = names[0].toString();

    $.post("ajax_request.php", 
{first_question: question_one_val
 });

然后将其发送到我的下面的ajax页面:

session_start(); 
require_once 'question_responses.php';
require_once 'questions.php';




$test = $_POST['first_question'];

 $test = question_one($test);

 $_SESSION['views']=$test;

我还会在两个需求页面中添加一个小片段。

question.php

function question_one($answer)
    {
        $question_one_response="";
        if($answer == "a")
            {
                $question_one_response = $question_one_response_a;
            }
        if($answer == "b")
            {
                $question_one_response = $question_one_response_b;
            }

        if($answer == "c")
            {
                $question_one_response = $question_one_response_c;
            }

        if($answer == "d")
            {
                $question_one_response = $question_one_response_d;
            }

        if($answer == "e")
            {
                $question_one_response = $question_one_response_e;
            }

            return $question_one_response;
    }

和question_responses.php

$question_one_response_a = "Response a";
$question_one_response_a = "Response b";
$question_one_response_a = "Response c";
$question_one_response_a = "Response d";

现在截至目前,当我尝试访问会话变量时,我得到一个空字符串,或者没有设置变量。

真正让我感到困惑的是,我已经做了一些测试而没有尝试将其设置为响应。 所以:

$test = $_POST['first_question'];


     $_SESSION['views']=$test;

将在我正在显示的页面上返回正确的a-e值。因此,我的ajax请求以及获取值的javascript似乎正在工作,我认为它必须是其他页面的问题,但我无法弄清楚究竟是什么原因。

1 个答案:

答案 0 :(得分:0)

所以,如果我没错,你已经检查了所有这些要点吗?

  • session_start();始终设置在页面顶部,在任何输出之前(即使是空白字符)。

  • question_one_val包含预期值(使用console.log())

  • $test包含预期值(使用var_dump)

  • question_one会返回预期值< =您的问题可能存在,您确定$answer是否符合至少一个条件?

您应该尝试按$question_one_response="";修改$question_one_response="test";,看看您的会话是否包含test字符串!