我在stackoverflow上搜索了一些问题并使用了建议的解决方案,但是,我似乎无法按照我喜欢的方式运行我的PHP代码。
当我访问projects.php?message = success或projects.php?message = removed时,JavaScript函数不会执行。在我的调试中,我已经通过将其附加到带有onclick属性的按钮来确认JavaScript正常工作。
我的PHP代码:
<?php
function GET($key) {
return isset($_GET[$key]) ? $_GET[$key] : null;
}
$alert= GET('message');
if ($alert == success) {
echo '<script type="text/javascript"> window.onload=success(); </script>';
} elseif ($alert == removed) {
echo '<script type="text/javascript"> window.onload=removed(); </script>';
}
&GT;
我的JavaScript代码:
<script>
function success() {
$.notify({
// options
icon: "pe-7s-cloud-upload",
message: 'New project entry was successfully added.'
},{
// settings
type: 'success'
});
}
function removed() {
$.notify({
// options
icon: "pe-7s-trash",
message: 'Project entry was successfully deleted.'
},{
// settings
type: 'danger'
});
}
</script>
答案 0 :(得分:0)
我测试的是你正在使用的不成熟的常数,称为成功。 正如@Chris G所说
更改if for:
if ($alert == "success")
答案 1 :(得分:0)
您需要围绕文本引用并正确设置window.onload
:
<?php
function GET($key) {
return isset($_GET[$key]) ? $_GET[$key] : null;
}
$alert = GET('message');
echo "<script>window.onload = function () { ";
if ($alert == "success") echo "success();";
else if ($alert == "removed") echo "remove();";
echo " };</script>";
?>
如果你需要这两个,你也可以这样做:
$alert = GET('message');
if ($alert == "success" || $alert == "remove") {
echo "<script>window.onload = $alert;</script>";
}
修改强>
要澄清评论中的问题:要将window.onload
设置为函数,一个无法使用
window.onload = myFunc(); // WRONG!
(这将调用该函数,然后将window.onload设置为结果)
正确的方法是:
window.onload = myFunc;
// OR
window.onload = function () {
myFunc();
};