我有一个项目,我需要在程序完全执行之前先得到用户的确认。
以下是该方案: 用户将从日期选择器中选择一个日期,然后程序将自动获取/检测数据库中是否已存在该日期。
如果它存在,那么它会提示用户是否要覆盖它,如果是,则查询将会运行。
到目前为止,这是我的代码,但它没有正常工作:
$filter = mysql_query("SELECT * FROM tbl_productivity WHERE scheduleDate='2013-12-15'") or die(mysql_error());
if(mysql_num_rows($filter)==0)
{
$query = mysql_query("SELECT sched.campaign, sched.cmsName, sched.team, sched.scheduleDate, sched.scheduleInput,sched.scheduleInput,STR_TO_DATE(MID(sched.scheduleInput, 7, 7), '%h:%i %p') as sIn, STR_TO_DATE(MID(sched.scheduleInput, 1, 8), '%h:%i %p') as sIn2,STR_TO_DATE(MID(sched.scheduleInput, 9, 12), '%h:%i %p') as sIn3, cms.loginDate, MAX(cms.logoutDate) as logoutDates, team.auxDate, team.general,team.outbound, team.authorized, team.break, team.lunch, team.email, team.coaching, team.systemDown, team.miscellaneous, team.training, team.general + team.outbound + team.authorized + team.break + team.lunch + team.email + team.coaching + team.systemDown + team.miscellaneous + team.training as totalAux FROM tbl_employeeschedules sched LEFT OUTER JOIN tbl_cmsloginout cms ON sched.cmsName = cms.agentName AND sched.scheduleDate = cms.loginDate LEFT OUTER JOIN tbl_auxupload team ON sched.cmsName=team.cmsName AND sched.scheduleDate=team.auxDate WHERE sched.scheduleDate='2013-12-15' GROUP BY sched.cmsName ORDER BY sched.team") or die(mysql_error());
}
else
{
echo "<script>
var ans = confirm('Data dated 2013-12-15 already existing, Do you want to overwrite it?');
if(ans==true)
{
$query = mysql_query('SELECT sched.campaign, sched.cmsName, sched.team, sched.scheduleDate, sched.scheduleInput,sched.scheduleInput,STR_TO_DATE(MID(sched.scheduleInput, 7, 7), '%h:%i %p') as sIn, STR_TO_DATE(MID(sched.scheduleInput, 1, 8), '%h:%i %p') as sIn2,STR_TO_DATE(MID(sched.scheduleInput, 9, 12), '%h:%i %p') as sIn3, cms.loginDate, MAX(cms.logoutDate) as logoutDates, team.auxDate, team.general,team.outbound, team.authorized, team.break, team.lunch, team.email, team.coaching, team.systemDown, team.miscellaneous, team.training, team.general + team.outbound + team.authorized + team.break + team.lunch + team.email + team.coaching + team.systemDown + team.miscellaneous + team.training as totalAux FROM tbl_employeeschedules sched LEFT OUTER JOIN tbl_cmsloginout cms ON sched.cmsName = cms.agentName AND sched.scheduleDate = cms.loginDate LEFT OUTER JOIN tbl_auxupload team ON sched.cmsName=team.cmsName AND sched.scheduleDate=team.auxDate WHERE sched.scheduleDate='2013-12-15' GROUP BY sched.cmsName ORDER BY sched.team') or die(mysql_error());
}
</script>";
}
我执行此代码时没有发生警报。
答案 0 :(得分:0)
您在JavaScript代码中包含PHP代码。这不起作用,因为PHP代码必须在Web服务器上执行。在Web服务器处理完PHP代码很久之后,<script>
在用户的浏览器上执行。
您需要使用JavaScript confirm
对话框的结果回发到Web服务器,以便在服务器上执行下一个SELECT
查询,而不是尝试在JS块中处理它