如果我的问题标题令人困惑,我道歉,这是我的第一篇文章,尽管阅读https://stackoverflow.com/help/on-topic我觉得我的问题写作能力仍然存在一些缺陷。
TL; DR:如果我不使用header("location: ProjectUserProfile.php?UploadSuccessful")
,则JavaScript动画可以正常工作,但如果我这样做(并且我需要),则不会。有什么理由或解决方案吗?
反正
上下文: 我有一个嵌入在php文档中的html表单,用于上传图像,删除图像等。
主代码发生在ProjectUserProfile.php上(并且工作正常),在上传图像后,我使用header("location: ProjectUserProfile.php?UploadSuccessful")
返回页面,并提示刷新。
问题:
如果我不使用header("location: ProjectUserProfile.php?UploadSuccessful")
,图像将不会改变等,所以我必须使用它。但是,最近我实施了#34;幻灯片通知"如果你将显示成功和错误消息。这些工作正常,但如果我使用header("location: ProjectUserProfile.php?UploadSuccessful")
返回页面,则会显示失败。
<?php
// all the uploading etc that works occurs here
header("location: ProjectUserProfile.php?UploadSuccessful");
echo "<script> openMessage('Information','The duplicate files were successfully uploaded!') </script>";
?>
&#13;
重定向到ProjectUserProfile.php?UploadSuccessful后,失败确认openMessage
,因此没有任何反应。
然而,如果我没有使用header("location: ProjectUserProfile.php?UploadSuccessful")
,那么&#34;通知&#34;会滑入并工作。
有没有人有任何解决方案或建议?
javascript函数的相关代码&#39; openMessage()&#39;下面:
function openMessage(Purpose, DisplayText){
var notificationDiv = document.getElementById("slideinNotification");
if(notificationDiv){
alert("exists");
}
else{
alert("does not exist");
}
document.addEventListener("DOMContentLoaded", function(event){
if(Purpose == "Information"){
document.getElementById("slideInNotification").style.backgroundColor = "#4CAF50";
}
else if(Purpose == "Warning"){
document.getElementById("slideInNotification").style.backgroundColor = "#FF9800";
}
else if(Purpose == "Error"){
document.getElementById("slideInNotification").style.backgroundColor = "#F44336";
}
document.getElementById("notificationMessage").innerHTML = DisplayText;
moveElement();
});
}
&#13;
<?php
if($filesWereDeleted == true){
$connection = new mysqli("localhost", "root", "root", "project");
$result = $connection -> query("UPDATE UserProfileImage SET UploadStatus = 1 WHERE UserUniqueID = '$userProfileId'");
header("location: ProjectUserProfile.php?DeletionSuccessful");
echo "<script> openMessage('Information','The profile image was successfully deleted!') </script>";
}
?>
<div id = "slideInNotification" class = "slideNotification">
<p id = "notificationMessage" class = "notificationInfo"></p>
<a href = "javascript:void(0)" class = "closeButton" onclick = "closeMessage()">×</a>
</div>
&#13;
答案 0 :(得分:1)
首先,你的invalid_ind = [ind for ind in offspring if not ind.fitness.valid]
fitnesses = map(toolbox.evaluate, invalid_ind)
for ind, fit in zip(invalid_ind, fitnesses):
ind.fitness.values = fit
查询暴露给SQL注入,如果你从用户那里得到id,我希望注意,阅读有关预准备语句。
其次,关于您的问题,您在发送UPDATE
标头的同一响应中回显通知脚本,因此在浏览器加载JavaScript代码之前,它会在您的通知javascript时将客户端重定向到新页面代码没有回应...
如果您的问题是用户更新了图片并且因为缓存而未显示,则可以在图片Location
的获取查询中使用uniqid()
或修改时间,更有效
答案 1 :(得分:0)
问题是,一旦你使用header("location: ProjectUserProfile.php?DeletionSuccessful");
,你就不应该在输出中写任何东西,因为浏览器会忽略它。除此之外,我不确定单行<script> openMessage('Information','The duplicate files were successfully uploaded!') </script>
如何对浏览器有任何意义,因为除非您通过AJAX接收或加载它,否则它本身不会构成HTML文档。变成<iframe>
;但即便如此,我怀疑混合控制指令(重定向)与视图标记(脚本标记)是个好主意。
您必须在ProjectUserProfile.php
中发布确认消息,因此请将脚本标记移到那里。您可以使用?UploadSuccessful
位作为参考,以了解是否需要在文档中包含消息脚本。