1

我有一个表格,可让您在数据库中输入新歌曲。问题是当我单击“保存”按钮时,我想弹出一个包含成功包含消息的弹出窗口。我有两个文件,一个代表视图,另一个代表控制器。我可以在控制器中放置一个变量,其中包含允许我弹出弹出窗口然后从视图中检索它的 JavaScript 代码吗?

这是控制器(我使用 Slim 框架)。

$popup = array();
$popup = '$(function(){
    $( "#dialog-message" ).dialog({
        modal: true, 
        buttons: {
            Ok: function() {
                $( this ).dialog( "close" );
            }
        }
    });
});';
$app->render('newkaraoke.html', array('pop'=>$popup));

这是参考变量的视图

<?php echo $pop;?> 
4

1 回答 1

0

我的解决方案没有考虑任何框架,但无论如何都应该工作。

您可以为此做的最简单的方法是一个简单的if()语句,如下所示:

if(isset(_POST['submit-music'])) {
echo "
    <div id='success-message'>Your song has been added to the database</div>
";
}

只要您将$_POST['submit-music']变量传递给视图,此代码就可以工作。你总是可以把 POST var 放在更简单的$submitted地方,比如检查它是否存在。

为了删除弹出窗口(如果您愿意),我编写了以下代码(但是它使用 JQuery,但您也许可以创建一个 Javascript 替代方案)。

$('document').ready(function() {
    $('#success-message').delay(3000).fadeOut();
});

3000 是在淡出 div 之前经过的时间量。在这种情况下,它设置为 3 秒。

于 2013-07-23T09:24:12.547 回答