2013-01-13 36 views
1

這是與變量$correct相呼應的php頁面。其初始值爲0。它隨着它的值增加而改變,但是當我使用jquery ajax方法將該值加載到其他頁面後,它只返回0而不是增量值。如何使用jquery ajax方法在php頁面訪問其他html頁面的動態變量變量?

<?php 

$i=1; 
while($i<=10) { 

    $answer="answer_".$i; 
    ${"answer_$i"}=$_POST[$answer]; 
    $i++; 
} 

$correct=0; 

if($answer_1=="a") 
$correct=$correct+10; 
else { 
    if($answer_1=="b" || $answer_1=="c" || $answer_1=="d") 
     $correct=$correct-10; 

} 
if($answer_2=="a") 
$correct=$correct+10; 
else { 
if($answer_2=="b" || $answer_2=="c" || $answer_2=="d") 
      $correct=$correct-10; 
} 
if($answer_3=="a") 
$correct=$correct+10; 
else { 
    if($answer_3=="b" || $answer_3=="c" || $answer_3=="d") 
     $correct=$correct-10; 
} 
if($answer_4=="a") 
$correct=$correct+10; 
else 
{ if($answer_4=="b" || $answer_4=="c" || $answer_4=="d") 
     $correct=$correct-10; 
} 
if($answer_5=="a") 
$correct=$correct+10; 
else 
{ if($answer_5=="b" || $answer_5=="c" || $answer_5=="d") 
     $correct=$correct-10; 
} 
if($answer_6=="a") 
$correct=$correct+10; 
else 
{ if($answer_6=="b" || $answer_6=="c" || $answer_6=="d") 
     $correct=$correct-10; 
} 
if($answer_7=="a") 
$correct=$correct+10; 
else 
{ if($answer_7=="b" || $answer_7=="c" || $answer_7=="d") 
     $correct=$correct-10; 
} 
if($answer_8=="a") 
$correct=$correct+10; 
else { 
    if($answer_8=="b" || $answer_8=="c" || $answer_8=="d") 
     $correct=$correct-10; 
} 
if($answer_9=="a") 
$correct=$correct+10; 
else 
{ 
    if($answer_9=="b" || $answer_9=="c" || $answer_9=="d") 
     $correct=$correct-10; 
} 
if($answer_10=="a") 
$correct=$correct+10; 
else 
{ 
    if($answer_10=="b" || $answer_10=="c" || $answer_10=="d") 
     $correct=$correct-10; 
} 
echo "$correct"; 
?> 

這是訪問這個變量$correct其他網頁上的腳本,但它總是導致0,雖然該變量的值是PHP頁面上的變化?我怎樣才能糾正這一點?

<script> 
$(function(){ 
$('form').submit(function(event){ 
event.preventDefault(); 
$.ajax({ 
url:"results.php", 
type:"POST", 
success:function(result){ 
console.log(result); 
$('#results').html("<p>"+result+"</p>"); 
} 
}); 
}); 
}); 
</script>    

回答

0

您沒有將任何答案從AJAX傳遞給PHP。
因此,您的PHP條件都不符合。
因此它返回0.

要通過post請求傳遞數據,請參閱ajax文檔(http://api.jquery.com/jQuery.ajax/)。您需要查看data屬性。

你會希望有這樣的事情:

$.ajax({ 
    url:"results.php", 
    type:"POST", 
    data: { 
     answer_1: 'blue' // what colour is the sky? 
    }, 
    success:function(result){ 
     console.log(result); 
     $('#results').html("<p>"+result+"</p>"); 
    } 
}); 

然後你的PHP需要收集數據,但我想你已經有一個設置:

$answer1 = $_POST['answer1']; 


更新: 包括來自用戶評論的示例信息。

<input type="radio" name="answer_1" value="a" id="question_1_answer_a"/> 
<label for="question_1_answer_a">anirudh</label> 
<input type="radio" name="answer_1" value="b" id="question_1_answer_b"/> 
<label for="question_1_answer_b">anirudh</label> 

所以,你會想是這樣的:

data: { 
    answer_1: $('input[name="answer_1"]').val(), // from HTML example 
    answer_2: $('input[name="answer_2"]').val(), 
    answer_3: $('input[name="answer_3"]').val() 
    // etc 
}, 

如果你不修改任何使用jQuery的表單數據的計劃,你總是可以只序列化和後,與其:http://api.jquery.com/serialize/

+0

我知道這是我的形式,然後我通過它傳遞什麼數據。假設它由10個問題組成,每個4個選項都是這樣的。這是我第一個問題的兩個選項 \t \t \t \t \t <標籤= 「question_1_answer_b」> anirudh – TeamA1

相關問題