我的代码陷入了困境。变量 $end_date
在 while 循环中迭代,以显示五个章节的结束日期。现在,根据这个变量,我必须显示一个警报框。我的问题是,当找到最后一章的结束日期时,会弹出警告框,该警告框无效,因为对于其他四章,结束日期已延长。如何仅保留最后一章的结束日期,并且警报框条件不应匹配。我对此进行了很多尝试,但无法为此建立逻辑。帮助或建议将不胜感激。
if((strtotime($today_date) >= strtotime($end_date) || ( $pass_count == 0 && $status_request != 2 && $status_request != 0 ) ) )
{
echo ("<SCRIPT LANGUAGE='JavaScript'>
mess1='Your exam validity date has been expired. Click OK to request for extending your Quiz validity or you can ignore by clicking Cancel.'
x = confirm(mess1);
if (x == true)
{
window.location = 'validity_request_mail.php?userid=$userid ';
}
</SCRIPT>");
}
最佳答案
解决方案
我们可能会引入一个名为 $last_date
的新变量,用于捕获所有章节的“最大”结束日期。
问题似乎是在 while()
循环之后,设置了 $end_date
,它应该是最后一个日期。然而,最后(第 5 次迭代)在其他章节的其他 $end_date
之前有一个 $end_date
,因此显示 confirm()
框不正确(因为有些章节尚未过期)。
所以这应该可以解决这个问题:
while (...) {
...
}
...
// snippet in OP's post
致:
$last_date = '';
while (...) {
...
if ( strtotime($end_date) > strtotime($last_date) ) {
$last_date = $end_date;
}
}
...
$end_date = $last_date; // continue with snippet in OP's post
关于javascript - 将变量保留在 while 循环的最后一次迭代中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47236021/