在我的PHP代码中调用javascript函数

时间:2017-01-05 15:31:22

标签: javascript php jquery

我在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>

2 个答案:

答案 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();
};