0

这是一个简单的,但我就是想不通。

我有一个简单的表格:

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

然后我有简单的 phpresults.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 {但我不知道我在哪里有额外的 {.

4

2 回答 2

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 中的函数中,并在您想要加载结果时调用它。

于 2013-02-28T20:52:04.880 回答
0

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

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

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

参考。 将数据从 jQuery 传递到 PHP 以进行 ajax 帖子

于 2013-02-28T20:57:06.197 回答