2011-06-23 54 views
1

提交表单与jQuery,然后从外部页面结果加载到DIV

使用jQuery提交到另一个页面,并从外部页面的结果加载到DIV。似乎无法得到这个工作。以下是我正在使用的代码:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function() { 
$('#msgform').submit(function() { 
    $.post('blah.php', $('#msgform').serialize(), function (data, textStatus) { 
     $('#msgresults').append(data); 
    }); 
    return false; 
}); 
}); 
</script> 

<form id="msgform" action="blah.php" method="post" style="padding:0px;margin:0px;"> 
<input type="hidden" name="strmemid" value="someid" /> 
<textarea name="message" id="msgtextarea"></textarea> 
<input type="submit" value="Submit" /> 
</form> 

<div id="msgresults"></div> 

二。

好的。我正在使用JQuery表单插件,并获得了页面和数据库更新的工作。我现在需要的只是将表单提交到'msgresults'DIV后,将警报(“感谢您的评论”)替换为更新或追加外部页面的响应。 TIA

<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript" src="js/jquery.form.js"></script> 

<script type="text/javascript"> 
$(document).ready(function() { 
$('#msgform').ajaxForm(function() { 
alert("Thank you for your comment!"); 
}); 
}); 
</script> 

<div id="msgresults"></div> 

三,

最后此代码的工作

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#msgform').ajaxForm(function (data, textStatus) { 
     $('#msgresults').append(data); 
    }); 
}); 
</script> 
+1

当你说这不起作用时会发生什么?例如,您的外部来源是否正确地返回数据? – Jay

+0

尝试在Firefox + Firebug中的代码。你可以在控制台中看到什么时候发出请求,返回什么HTTP代码(200,500等),甚至可以深入到响应中。 –

+0

正是你正在得到错误 – Rafay

回答

3

有很多的事情可以去错了。你确定AJAX请求已成功返回吗?我建议切换到

$.ajax({ 
    type: 'POST', 
    url: 'blah.php', 
    data: $('#msgform').serialize(), 
    success: function (data, textStatus) { 
    alert(data, textStatus); 
    $('#msgresults').append(data); 
    }, 
    error: function(xhr, status, e) { 
    alert(status, e); 
    } 
}); 

它会帮助您调试代码的ajax部分。 $ .post不会处理错误,所以(在我看来)它几乎不是一个好主意,因为你可能总是有网络错误需要处理。使用更新的jQuery,你仍然可以在xhr上使用.error()方法,所以我想这是另一种选择。

+0

我收到了错误提醒。嗯 – Patriotec

+0

酷,所以根据错误是什么,你可以从那里开始调试。 –

+0

使用JQuery Form插件解决了一个问题。我现在可以更新数据库,但将追加提交给页面的响应添加到'msgresults'DIV中仍然有点模糊。任何帮助赞赏。 TIA。 – Patriotec

相关问题