2011-06-23 50 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

相關問題