2012-03-03 18 views
0

Jqueryダイアログボックス内に読み込まれたページにajaxリクエストを送信しようとしています。 これは私のダイアログボックスのコードです: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を得ています。何が問題なの?

+0

私は少し混乱している - あなたはあなたの親ページからのデータを送信しようとしています実際のモーダルウィンドウにモーダル? そうだね。 送信した投稿データがモーダルウィンドウAFAIKに読み込まれたページに送信されないため、実際にそれを行うことはできません。 – Pankucins

+0

はい。親ページからjqueryモーダルボックスにデータを送信しようとしています。 –

+1

あなたの問題は、ダイアログボックスにレスポンスが読み込まれていないことです。それともwindow.phpへのリクエストが行われていないのでしょうか? – linuxeasy

答えて

1
$.post('ajax/test.html', function(data) { 
     $('#dialog').html(data); 
    }); 
+0

OPはhtmlではなくPHPを使用しています。 OPはまた、ダイアログを作成しています。それを反映するためにあなたの答えを編集したいかもしれません。 – sinemetu1

0

何が間違っているかを見るためにvar_dump($ _ POST)を追加してください。多分:

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

あなたが言ったように私はやっています。追加された:echo 'Hello world'; var_dump($ _ POST);私の "window.php"ページの最上部にあり、出力は次のようになっています:Hello worldarray(0){}しかし、ajaxリクエストを送信した後は、ダイアログボックスで何も更新されません。 –

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()をbehing動機を理解していません。ロードとは、何かがブラウザに完全にロードされたときに起動するイベントです。しかしDialogのオープンイベントで呼びます。 .html()の代名詞として​​を使用する予定ですか?

0

は最終的に私はサンディープのポストに従った後、このいずれかを試してみましたが、これは動作しているようだ:

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

     $('#dialog').dialog({ 
     modal: false,      
     height: 240, 
     width: 400, 
     title: 'Ajax Page' 
     }).html(data); 
     }); 
関連する問題