jQuery.post()将数据传递给jQuery UI

时间:2010-04-16 16:23:21

标签: jquery-ui jquery jeditable

我想让jQuery.post()运行我的php脚本,然后用php脚本返回的数据打开一个jQuery UI对话框。它应该以一张桌子和一张textarea的形式回归。它适用于alert(data);,我会弹出一个包含所有数据的内容。

如果我关闭alert(),问题就会出现。现在它打开2个对话框。一个只包含表,没有textarea,第二个绝对空。

我在这里做错了什么?为什么我的所有数据都出现在alert()中,而不是出现在对话框中?我需要做些什么来解决它?

哦,我还需要在$.ajax()之前加入$.post()吗?

谢谢。

 $.post("/path/to/script.php", 
               { id: this.id, value: value },
               function(data){

                     // THIS WORKS
                     //alert(data);

                     // THIS DOES NOT WORK
                     $(data).dialog({ 
                             autoOpen: true,
                             width: 400,
                             modal: true,
                             position: 'center',
                             resizable: false,
                             draggable: true,
                             title: 'Pending Changes'
                    });
               }



   );

3 个答案:

答案 0 :(得分:0)

您不需要另外$.ajax()次来电。 $.post()方法是$.ajax()的包装快捷方式。可能会发生的是您可能同时获得默认行为和Javascript绑定行为。我假设点击时触发了此$.post操作。如果是这样,那么在$.click()处理程序的最后,您需要return false来防止默认行为。

$('input[type=submit]').click(function() {
    $.post( /* ... */ );
    return false;
});

答案 1 :(得分:0)

这就是我处理它的方式。我有一个空div并在文档就绪时初始化对话框。现在在ajax返回加载div的html与从PHP接收的数据并调用对话框的“打开”方法。简单而且绝对有效。

HTH

答案 2 :(得分:0)

啊!这不是JS的问题,而是我的php文件。

textarea坐在<div>blah blah</div>之外。

问题解决了。