2013-02-28 55 views
0

这是一个简单的,但我无法弄清楚。显示没有页面重装的php测验的结果

我有一个简单的表格:

<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 {但我不知道我有多余的{}。

+1

你需要AJAX你绝对不需要jQuery。 – Musa 2013-02-28 20:53:08

+0

你能举一个我怎么做的例子吗? – Arel 2013-02-28 20:54:25

回答

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

+2

来吧人,停止-1的职位,将包含更多的信息很快...这是一个常见的事情堆栈...无论如何,我已经包括示例代码吧... – 2013-02-28 20:55:41

+0

+1,我同意你的看法! – user1477388 2013-02-28 20:57:46

+0

我在尝试了您的建议后更新了我的问题,提出了更多问题。 – Arel 2013-02-28 21:13:31

0

这里是基督教已经在暗示一个例子:

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

你的PHP页面会再返回JSON。

Ref。 Pass data from jQuery to PHP for an ajax post