如何在每次按钮单击时将两个数组与php和ajax进行比较

时间:2014-07-08 13:41:44

标签: javascript php jquery ajax

我坚持使用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

一次显示所有值。

请帮助,如果有人可以,如果需要任何帮助,我会立即回答。

谢谢

1 个答案:

答案 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'"

希望能帮助你:)