簡體   English   中英

我如何使用jquery ajax方法訪問php頁面中動態變化的變量到其他html頁面?

[英]How can i access a dynamically changing variable in php page to other html page using jquery ajax method?

這是php頁面,它回顯變量$correct 其初始值為0 它隨着其值的增量而變化,但是當我使用jquery ajax方法將其回顯到其他頁面后加載此值時,它僅返回0而不是增量值。

<?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>               

您沒有將任何答案從AJAX傳遞到PHP。
因此,您的PHP條件都不滿足。
因此它返回0。

要通過發布請求傳遞數據,請查閱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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM