2013-07-23 170 views
1

我有一個表單,允許您在數據庫中輸入新歌曲。問題是當我點擊按鈕「保存」時,我想彈出一個包含成功消息的彈出窗口。我有兩個文件,一個代表視圖,另一個控制器。我可以在包含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

你想要做的是ajax調用,這可以通過'jQuery.post();'或'jQuery.ajax()'完成。如果你做了一些研究,你可以找出它的工作原理 –

+0

爲什麼你要將'$ popup'聲明爲數組,然後爲它分配一個字符串? – DevZer0

+0

你爲什麼要在這裏使用php來插入js?只需使用'.js'腳本。 – Brewal

回答

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秒。