2012-06-24 80 views
0

我有一個PHP頁面重定向(如果成功的話)到另一個PHP頁面是這樣的:更新DIV值 - JQuery的Toastmessage-插件

header('Location: completed.php?message=Successful operation. Data inserted for user: ' . $login->get_username() . ' . See home page for infos.'); 

現在completed.php我有呼應收到消息一個div :

<div id="msg"> 
<?php echo $_GET['message']; ?> 
</div> 

我使用「Toastmessage-插件」:here..,但我無法顯示在$ _GET到Toastmessage文.. 我使用這個代碼:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script src="js/jquery.toastmessage.js" type="text/javascript"></script> 
<link href="styles/jquery.toastmessage.css" rel="stylesheet" type="text/css" /> 

... 

<script type="text/javascript"> 
function showStickyNoticeToast() { 
     $().toastmessage('showToast', { 
      text: $('#msg').val(), 
      sticky: true, 
      position: 'bottom-left', 
      type: 'notice', 
      closeText: '', 
      close: function() { console.log("toast is closed ..."); } 
     }); 
    } 
</script> 

我搜索了很多,也爲DOM事件和其他事件,但我不知道什麼步驟採取......也許當JQ功能加載div'味精'尚未收到GET數據。 ..?所以我如何更新他的價值?

我讀過的頁面: thisthis。 我也試圖與阿賈克斯,但我在語言經驗不足..

請幫助... :)謝謝

編輯@charlietfl

阿賈克斯:我已經做了很多的嘗試...我找不到代碼了! 基本上我調用PHP文件與此代碼(以此爲僞代碼):

<script type="text/javascript> 
<!-- 
$('#choose').change(function(event) { 
    $.get('messages.php', { selected: $('#msg').val() }, 
     function(data) { 
      $('#update').html(data); // other div wher store data 
     } 
    );    
}); 
</script> 

....

<?php 

$alfa = isset($_GET['message']) ? $_GET['message'] : 'nothing'; 
echo $alfa; 
?> 
+0

顯示Ajax代碼以及如何調用它 – charlietfl

+0

的消息如果你只是輸出的GET [消息],郵件必須在那裏,除非你有$ _GET篡改在您的PHP代碼... – Cranio

+0

charlietfl ...看看我的編輯.. – lollo

回答

0

明白了:您使用$("#msg").val(),但DIV標籤沒有「價值」。

使用$("#msg").text()(爲純文本)

$("#msg").html()

還包括一些HTML,你可能在你的代碼(很肯定你所需要的第一個選項)。

僅在<input>(與<textarea>一起使用)等「價值」標籤上使用.val()

參見:http://api.jquery.com/val/

+0

是的..那是正確的解決方案...使用$(「#msg」)。val()不起作用。我已經用$(「#msg」)。text()..改變它現在得到它的工作...感謝所有..再見! – lollo

1

嘗試與urlencode()傳遞消息,如:

$msg = "Successful operation etc. etc."; 
header("Location: completed.php?message="+urlencode($msg)); 
+0

對不起,沒有運氣... – lollo

+0

@lollo好了,請記住任何複雜的字符串作爲GET參數應該通過這種方式(特別是如果它包含特殊字符,如&符) – Cranio

+0

@lollo也許有錯誤,檢查我的其他答案。對於所有人,我不知道它的政策是否給出了另一個答案(我覺得這是正確的,因爲它完全不相關)。 – Cranio

-1

你的問題很可能是你正在嘗試完成AJAX自阿賈克斯的第一個「A」代表異步之前調用消息插件。

爲了允許完成ajax所需的時間,您需要在ajax的成功回調中調用您的消息插件。

添加message參數的功能

function showStickyNoticeToast(message) { 
     $().toastmessage('showToast', { 
      text: message, 
      sticky: true, 
      position: 'bottom-left', 
      type: 'notice', 
      closeText: '', 
      close: function() { console.log("toast is closed ..."); } 
     }); 
    } 



$.post(url , dataToserver, function(data){   
     showStickyNoticeToast($(data).text()) 
     $('#update').html(data); 

}) 
+0

這不是問題,錯誤在「val()」中,順便提一下,ajax只是作爲一種替代方式被提及,而不是實際的實現。 – Cranio

+0

我意識到val是不正確的,但這種情況下的缺陷在哪裏? – charlietfl

+0

原帖並沒有提到Ajax(只有一次,但作爲另一種不同實現的替代)。 而主要的錯誤是OP沒有正確檢索值,而不是他使用或誤用Ajax(根本沒有顯示)。所以我覺得這個答案儘管在句法和程序上是正確的(我讀過其他文章,並且知道你非常聰明和專家)是不恰當的。 現在經過一堆編輯,我們在OP中還有一個AJAX部分... – Cranio