我想让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'
});
}
);
答案 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>
之外。
问题解决了。