我有一个表单,允许您在数据库中输入新歌曲。问题是,当我点击“保存”按钮时,我想提出一个包含成功信息的弹出窗口。我有两个文件,一个代表视图,另一个代表控制器。我可以在包含JavaScript代码的控制器中放置一个变量,该代码允许我调出弹出窗口然后从视图中检索它吗?
这是控制器(我使用Slim Framework)。
$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;?>
答案 0 :(得分: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秒。