0

私は次のような別のphpページに(成功した場合)リダイレクトするphpページを持っています:

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-plugin':here ..を使用していますが、Toastmessageのテキストに$ _GETを表示できません..このコードを使用しています:

<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'msg'はまだGETデータを受信して​​いません...?だから私は彼の値をどのように更新しますか?

私が読んだページ: これこれ。私もajaxを試してみましたが、その言語の経験はあまりありません。

助けてください...:)ありがとう

@charlietflを編集

Ajax:何度も試しました...コードが見つかりません!基本的に私はこのコードで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;
?>
4

3 に答える 3

1

urlencode()次のようにメッセージを渡してみてください。

$msg = "Successful operation etc. etc.";
header("Location: completed.php?message="+urlencode($msg));
于 2012-06-24T16:20:07.030 に答える
0

了解しました。使用します$("#msg").val()が、DIVタグには「値」がありません。

使用$("#msg").text()(プレーンテキストの場合)

また$("#msg").html()

コードにHTMLを含めることもできます(最初のオプションが必要であることは間違いありません)。

.val()のような「valued」タグでのみ使用してください<input>()でも機能し<textarea>ます。

参照:http ://api.jquery.com/val/

于 2012-06-24T16:44:23.757 に答える
-1

ajaxの最初の「A」は非同期を表すため、問題はajaxが完了する前にメッセージプラグインを呼び出そうとしている可能性があります。

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); 

})
于 2012-06-24T16:49:55.573 に答える