2010-04-16 53 views
-1

我试图让jQuery.post()运行我的php脚本,然后用php脚本返回的数据打开一个jQuery UI对话框。它应该回来作为一个表格和一个textarea在其中的形式。它与alert(data);效果很好,我用我的所有数据弹出。jQuery.post()将数据传递给jQuery UI的问题

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

我在这里做错了什么?我的所有数据如何显示在alert()中,但不在对话框中?我需要做些什么来解决它?

噢,我还需要在$.post()之前还包括$.ajax()吗?

谢谢。

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



    ); 
+0

我还应该补充一点,当我运行这段代码时,我从'jquery.js'得到一个错误信息,说 'Uncaught TypeError:无法设置属性'display'的undefined'。我不完全确定如何解决这个问题或它正在寻找什么...... – solefald 2010-04-16 17:08:15

回答

0

啊!这不是JS的问题,但我的PHP文件。

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

问题解决。

0

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

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

我应该指定点击是由jEditable启动的。 $(“。editable_textarea”)。editable(submitEdit,{/ * some stuff here here * /'}); 然后'$ .post()'位于函数submitEdit(value,settings){}'中。 我应该也可以指定我对JS一无所知。我在这里使用“试错法”技术...... – solefald 2010-04-16 16:54:23

0

这是我如何处理它。准备好文档后,我有一个空的div并初始化对话框。现在在ajax上,将div的html与从PHP接收的数据加载并调用对话框的“打开”方法。简单而明确的作品。

HTH