2012-03-03 27 views
0

我想发送一个ajax请求到Jquery对话框中加载的页面。 这是我的对话框代码:发送ajax请求到JQuery对话框中的文件

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

现在,我在我的网页上的链接,发送Ajax请求“window.php”页面,点击时:

$.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 2012-03-03 09:04:03

+0

是的..我想从我的父页面发送数据到jquery模式框。 – 2012-03-03 09:11:23

+1

你的问题是,你的对话框中没有加载响应?或者是不是要求window.php? – linuxeasy 2012-03-03 09:14:41

回答

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

OP使用PHP而不是html。 OP也在创建一个对话框。可能想编辑你的答案来反映这一点。 – sinemetu1 2012-03-04 06:12:01

0

添加一个var_dump($ _ POST)来查看出了什么问题。也许:

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

我按照你的说法完成了。增加:echo'Hello world'; var_dump($ _ POST);在我的“window.php”页面的顶部,我得到的输出为:Hello worldarray(0){}默认情况下。但是在发送ajax请求之后,对话框中没有任何更新。 – 2012-03-03 09:10:10

1

我不确定,如果我正确地理解了你的问题。但是我觉得你想把一些东西发布到window.php,并且它的响应应该显示在对话框中。

你能做到这样:

喜爱

我试图发送一个AJAX请求发送到Jquery的对话框内加载的页面。这是我的对话框代码:

$('#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' 
}); 

我不明白动机behing用户$.load()。加载是在浏览器中完全加载内容时触发的事件。但是你在Dialog的开放事件中调用它。您是否打算使用​​作为.html()的同义词?

0

最后我想这一个,下面Sandeep的帖子后,这似乎是工作:

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

     $('#dialog').dialog({ 
     modal: false,      
     height: 240, 
     width: 400, 
     title: 'Ajax Page' 
     }).html(data); 
     });