我一直坐在這裏堅持兩個小時,試圖找出爲什麼這不起作用,所以我請大家指導一下。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來獲得價值,似乎工作,我認爲它必須是其他網頁的問題,但我很難找出究竟是什麼原因。
我很困惑,你真的有什麼問題。你測試過'$ _POST ['first_question']'的值嗎?在發送ajax請求之前,您是否測試過它(即在javascript中?) –
是的,我在發送它之前以及在$ test = $ _POST ['first_question']之後測試了它。這兩次都會返回預期的a-e值。當我通過question_one()函數運行它時,會嘗試將它與$ question_one_response關聯起來。 –