0

Jquery ダイアログ ボックス内に読み込まれたページに ajax リクエストを送信しようとしています。これは私のダイアログボックスのコードです:

$('#dialog').dialog({
        modal: false,
        open: function ()
        {
            $(this).load('window.php');
        },         
        height: 240,
        width: 400,
        title: 'Ajax Page'
    });

今、私のページにリンクがあり、クリックすると「window.php」ページに ajax リクエストが送信されます。

 $.post("window.php", { username: username }

そして、読み込まれたページ (window.php) に、投稿パラメーターを出力するコードを配置しました...

<?php
echo 'Hello world';
var_dump($_POST);
if(isset($_POST['username']))
{
echo ':: '.$_POST['username'];
}
?>

しかし、驚いたことに、ロードされたダイアログ ボックスのページにリクエスト パラメータが表示されません。私はちょうど得てHello worldいます。問題は何ですか?

4

4 に答える 4

1

私があなたの問題を正しく理解したかどうかはわかりません。しかし、window.phpに何かを投稿して、その応答をダイアログボックスに表示する必要があると思います。

あなたはこのようにそれを行うことができます:

お気に入り

Jqueryダイアログボックス内にロードされているページにajaxリクエストを送信しようとしています。これは私のダイアログボックスのコードです:

$('#dialog').dialog({
    modal: false,
    open: function ()
    {
        $.ajax(function(){
            url:"window.php",
            data:{ 'username' : username},   // now depends from where you are bringing this username from
            type:"post",
            sucess:function(msg){
                $('#dialog').html(msg)
            }
        });
   },         
   height: 240,
   width: 400,
   title: 'Ajax Page'
});

ユーザーの動機がわかりません$.load()。Loadは、ブラウザに何かが完全に読み込まれたときにトリガーされるイベントです。しかし、あなたはダイアログのオープンイベントでそれを呼んでいます。.load()の同義語として使用するつもりでした.html()か?

于 2012-03-03T09:25:57.707 に答える
1
 $.post('ajax/test.html', function(data) {
      $('#dialog').html(data);
    });
于 2012-03-03T09:59:15.370 に答える
0

var_dump($_POST) を追加して、何が問題なのかを確認してください。多分:

$.post("window.php", { 'username' : username }
于 2012-03-03T09:04:46.510 に答える
0

Sandeepの投稿に従って、最後にこれを試してみましたが、これはうまくいっているようです:

$.post('window.php', {"username":"john"}, function(data) {

        $('#dialog').dialog({
        modal: false,                     
        height: 240,
        width: 400,
        title: 'Ajax Page'
        }).html(data);
        });
于 2012-03-03T10:14:08.970 に答える