显示php测验的结果,无需重新加载页面

时间:2013-02-28 20:50:50

标签: php javascript jquery forms

这是一个简单的,但我无法弄清楚。

我有一个简单的表格:

<form action='#' method="post">

    <label for="question-1">Question One</label>

    <input type="radio" name="question-1-answers" value="1" />
    <input type="radio" name="question-1-answers" value="2" />

    <label for="question-2">Question Two</label>

    <input type="radio" name="question-2-answers" value="1" />
    <input type="radio" name="question-2-answers" value="2" />

    <input type="submit" value="Submit Quiz" class="submit"/>

</form>

然后我在results.php中使用简单的php来计算结果:

<?php

$answer1 = $_POST['question-1-answers'];
$answer2 = $_POST['question-2-answers'];

    $result = 0;

     $a =array( 0=> "$answer1", 1=> "$answer2"); 

    $result = array_sum($a)/count(array_filter($a));
    echo "Your score is: "; echo round($result, 1); 
?>

这一切都很有效,但我希望当用户按下提交按钮时,结果显示在与测验相同的页面上,而不会重新加载页面。我知道我需要使用jQuery,但我看到的每个地方都有不同的方式,没有任何作用。

编辑:

所以我添加了以下内容:

 $function() {
   $.get('../results.php', function(data) {
   $('.result').html(data);
   alert('Load was performed.');
    });
}

<div class="result">The results are:</div>

并使用<input type="submit" value="Submit Quiz" class="submit" onclick="function()"/>

更新了提交按钮

当我点击提交按钮时,我仍然没有得到任何东西,当我检查控制台时,我得到的唯一错误是:Uncaught SyntaxError: Unexpected token {但我不知道我在哪里有额外的{。

2 个答案:

答案 0 :(得分:2)

您需要使用jQuery加载PHP测验结果HTML页面。然后你想把它注入dom。

包含jQuery,然后这个例子应该有效,假设测验结果页面在(php / quizResult.php) - 你可以随意设置

的jQuery

$.get('php/quizResult.php', function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});

HTML

<div class="result"></div>

将jQuery放在JavaScript中的函数中,并在想要加载结果时调用它。

答案 1 :(得分:0)

这是克里斯蒂安暗示的一个例子:

$.post('/callcenter/admin/postContacts', data, function(returnedData) {
    // do something here with the returnedData
    console.log(returnedData);
});

然后您的PHP页面将返回JSON。

参考。 Pass data from jQuery to PHP for an ajax post