我坚持使用PHP和Ajax数组,我正在开展测验计划,以及它是如何工作的,或者你检查网站:
访问:http://social-connections.co.uk/simple_answer.html
您将看到是和否的按钮。每次按钮单击此代码执行:
$(document).ready(function () {
$('.checkAnswer').click(function() {
$(this).parent().parent().parent().hide('fast');
var total = total_questions;
total = total - 1;
total_questions = total;
$('.count_questions').html(total);
if(total == 0) {
$('.count_questions').parent().html('Please enter email address to finish');
}
$.ajax('answer.php', {
type: 'POST',
data: {'question_answer' : $(this).html()},
success: function(data) {
alert(data);
}
});
});})
这是PHP代码。
<?php
session_start();
if (!isset($_SESSION['feilds'])) {
$_SESSION['feilds'] = array();
}
$answer = $_POST['question_answer'];
$output_string = array('answer'=>$answer);
array_push($_SESSION['feilds'] , $output_string );
//print_r($output_string);
include 'Quiz.php';
$dbq = new Quiz();
$dbq->ExecuteQuery('select * from quiz');
$db_result = $dbq->data;
/*for($i = 0; $i < count($dbq->data); $i++) {
for($j = 0; $j < count($_SESSION['feilds']); $j++) {
$compare_result = array_diff($dbq->data[$i]['correct_answer'], $_SESSION['feilds']['answer']);
if($compare_result) {
echo "All Okay";
}
}
}*/
$result = array();
$result_session = array();
for($i = 0; $i < count($dbq->data); $i++) {
$result[] = $dbq->data[$i]['correct_answer'];
}
for($x = 0; $x < count($_SESSION['feilds']); $x++) {
$result_session[] = $_SESSION['feilds'][$x]['answer'];
}
$result = array_diff($result, $result_session);
print_r($result);
&GT;
我想点击按钮时会检查点击值和数据库值,如果值相等则存储答案并对其他按钮执行相同操作。
我已尝试过array_diff()函数,但它显示的结果如下:
访问:http://tinypic.com/r/6dv67q/8
一次显示所有值。
请帮助,如果有人可以,如果需要任何帮助,我会立即回答。
谢谢
答案 0 :(得分:1)
如上所述,
在ajax请求中传递两个参数
1)quiz_id
2)correct_answer //由用户提交
PHP脚本逻辑只需要检查答案是否正确并将其添加到会话
阅读$quiz_id = $_POST['quiz_id']
和$answer = $_POST['correct_answer']
,您的sql需要如下所述(如参考共享数据库信息)
"select * from quiz where quiz_id=$quiz_id and correct_ans='$answer'"
希望能帮助你:)