gpt4 book ai didi

javascript - $_SESSION 变量显示意外行为

转载 作者:行者123 更新时间:2023-12-03 10:35:05 24 4
gpt4 key购买 nike

我目前正在使用 onclick() 处理一张 table <td>将信息发送到 PHP 页面的元素。

基本思想是,如果单击一门类(class)(例如法语、数学、英语等),PHP 页面会检索该值,然后执行 SQL 代码,为我提供该特定类(class)的所有导师。

<script>
function courseToTutor(id) {
var courseClicked = document.getElementById("course" + id).value;
$.post('loadDivs/loadTutors.php', {postname: courseClicked});
$('#divTutors').load('loadDivs/loadTutors.php');
}
</script>

<td>单击后,它会发送其 id(在 php 中生成)作为参数。在函数内部,我使用该参数来查找 <td> 中的值(存储在 input type="hidden" 内)。

我有一个 PHP 页面,两者都获取发布的值,如下所示:

if (isset($_POST['postname'])) {
$course = $_POST['postname'];
$_SESSION['clickedCourse'] = $course;
echo $course;
}

页面的其他部分是

else {
//generate table with tutors for a specific course (with SQL)
}

这在大约 85% 的情况下有效。是的,我使用正确的 session_start(); s,我有一个正确的数据库连接等等。

当我点击<td>时,我收到关于 loadTutors.php 的警报总是触发,它会提醒我的 $_SESSION['clickedCourse]; .

此警报在 85% 的情况下显示正确信息,在另外 15% 的情况下,它为空。

这不是我在页面上的其他代码,因为我在执行该代码之前触发了警报。

提前致谢

编辑这是我用来生成整个类(class)表的 php。

<?php
$counter = 1;
if (!$res = $link->query($sqlSelectCourses)) {
trigger_error('Error in query ' . $link->error);
} else {
while ($row = $res->fetch_assoc()) {
?>
<tr>
<td onclick="courseToTutor(this.id);" id="<?php echo $counter; ?>">
<?php echo $row["course"]; ?><input type="hidden" value="<?php echo $row["course"]; ?>" id="course<?php echo $counter; ?>">
</td>
</tr>
<?php
$counter+=1;
}
}
?>

最佳答案

 $.post('loadDivs/loadTutors.php', {postname: courseClicked});
$('#divTutors').load('loadDivs/loadTutors.php');

您正在发送两个请求,一个用于发送数据,一个用于接收新数据。它可能发生,第二个请求首先到达服务器,我认为这是 15% 的时间发生的情况(因此结果是错误的)。您应该做的是使用第一个请求并使用它的响应:

 $.post('loadDivs/loadTutors.php', {postname: courseClicked}, function(response){
$('#divTutors').html(response);
});

编辑:如果您无法设置 PHP 脚本以便直接在“点击请求”处发送新内容,请改用此方法:

 $.post('loadDivs/loadTutors.php', {postname: courseClicked}, function(){
$('#divTutors').load('loadDivs/loadTutors.php');
});

这将等待第一个请求完成,然后再开始第二个请求。

关于javascript - $_SESSION 变量显示意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29029611/

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