gpt4 book ai didi

php - 为什么我的 header 中的 Jquery 会阻止我的 PHP 代码工作?

转载 作者:行者123 更新时间:2023-11-29 12:02:34 24 4
gpt4 key购买 nike

我有一系列单选按钮。当我选择一个按钮并按提交时,我想要有两件事会发生:1. 应该出现复选标记(通过标题中的 Jquery 脚本完成)2. mysql 数据库应该更新用户的分数,从而改变方 block 的颜色(通过主体中的 PHP 脚本完成)

问题是,当存在 jquery 脚本时,会出现复选标记,但数据库不会更新。然而,当我删除 jquery 脚本时,数据库成功更新。他们的 jquery 脚本阻止 PHP 代码运行,我不知道为什么

JQUERY 脚本:

<script type='text/javascript'>

    `$(document).ready(function () {`
$('#questionform').on('submit', function(e) {
e.preventDefault();
$.ajax({
url : $(this).attr('action') || window.location.pathname,
type: "POST",
data: $(this).serialize(),
success: function (data) {

if ($('input[name=functions_question]:checked').val() == 2)
{

$("#correctanswermarkwhengotright").fadeIn('slow');
$(".incorrectanswermark").fadeIn('slow');

// I THINK THIS IS WHERE THE PHP CODE NEEDS TO GO TO FIX THE PROBLEM BUT I DON'T KNOW HOW TO INTEGRATE IT

} else {
$("#correctanswermarkwhengotwrong").fadeIn('slow');
$(".incorrectanswermark").fadeIn('slow');
}
},
});
});
});
</script>

PHP 脚本:

<?php  
$id = $_SESSION['id'];
$ress = $db->query("SELECT 1 FROM answers WHERE user_id=$id AND question_group='Functions'");
if($ress->num_rows==0){
$db->query("INSERT INTO answers VALUES(NULL, $id, 'Functions', 0)");
}
if(isset($_POST['functions_question'])){
$res = $db->query("SELECT score FROM answers WHERE id=$id AND question_group='Functions'");
$data = $res->fetch_array();
if($_POST['functions_question']==$_SESSION['functions_question']){
if($data['score']<2)$db->query("UPDATE answers SET score = score+1 WHERE id=$id AND question_group='Functions'");
}else{
if($data['score']>-2)$db->query("UPDATE answers SET score = score-1 WHERE id=$id AND question_group='Functions'");
}
}
?>

您可以在此处查看此代码的运行情况:carouseltest.byethost8.com/onanswersubmittest.php您可以使用用户名:mail@test.com 和密码:test 登录

如果有人可以解释如何将 PHP 与 Jquery 集成以使这两个操作都有效,我将不胜感激。谢谢!

最佳答案

您试图立即测试代码的每个逻辑。这相当复杂。您需要逐步测试您的代码。

1)尝试注释 ajax 成功处理程序中的所有内容,看看发生了什么(淡入和淡出逻辑)。

2) 尝试测试您的 ajax 处理程序(.php 文件)。注释此文件中的所有内容并回显 $_SESSION['functions_question'] 和 $_SESSION['id']。如果它们返回值,则转到下一步。

3)仅取消注释这部分代码

    $ress = $db->query("SELECT 1 FROM answers WHERE user_id=$id AND question_group='Functions'");
if($ress->num_rows==0){
$db->query("INSERT INTO answers VALUES(NULL, $id, 'Functions', 0)");
}

如果它有效并返回您需要的内容。它会将数据正确写入您的数据库,然后转到下一步。

4)取消注释此代码。

if(isset($_POST['functions_question'])){
$res = $db->query("SELECT score FROM answers WHERE id=$id AND question_group='Functions'");
$data = $res->fetch_array();
if($_POST['functions_question']==$_SESSION['functions_question']){
if($data['score']<2)$db->query("UPDATE answers SET score = score+1 WHERE id=$id AND question_group='Functions'");
}

如果它返回您需要的内容并正确更新数据库表,则转到下一步。

5) 取消注释最后一段代码

else{
if($data['score']>-2)$db->query("UPDATE answers SET score = score-1 WHERE id=$id AND question_group='Functions'");
}

按照测试之前代码的方式对其进行测试。

这将有助于调试您的代码。

关于php - 为什么我的 header 中的 Jquery 会阻止我的 PHP 代码工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com