簡介:這是ajax form提交的問題的詳細頁面,介紹了和php,有關的知識、技巧、經驗,和一些php源碼等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=332634' scrolling='no'>
連續兩晚時間,一直在尋找一個問題,同一樣的資料,同一樣的方法(前後台均一樣),只是瀏覽器不一樣,一個是IE6,一個是FF及chrome,但問題偏偏就是在IE6下,ajax提交後,參得到正常的傳回值及資料。另兩個就老是返回一個錯誤。還有就是在IE下能將新增或修改後的內容能正常的全部提交了,在FF,chrome下反而就變成了有些通提交成功,有些提交不成功,並返回錯誤的提示呢?
請看代碼:
<form><div id="tree" style="width:280px; float:left; height:528px; background-color:#f5f5f5;border :1px solid Silver; overflow:auto;"></div> <input type="hidden" value="" id="id" name="id"/> <input type="hidden" name="pid" id="pid" value="0" /> <input type="hidden" value="{$tablename}" name="tablename" id="tablename"> <dl class="lineD"> <dt>名稱:</dt> <dd><input type="text" id="names" name="names" value="" /></dd> <p>顯示在前台的欄目名稱,如首頁,新聞等...</p> </dl>.... <div class="page_btm"> <button class="btn_b" style="margin-left:200px; *margin-left:60px;" onclick="submits()" >提交</button> </div> </form>
var param = [ { name : 'names', value : $("#names").val() }, { name : 'id', value : id }, { name : 'pid', value : pid }, { name : 'code', value : $("#code").val() },];$.ajax({ type: "POST", timeout: 2000, dataType: "json", url: "{:U('Global/doAjaxSave')}", data: param, error: function(text){ alert("error: "+text.info); window.location.reload(); }, success: function(text){ alert(text.info); window.location.reload(); } });
後台那邊就是一個儲存操作,方法是共用的。這個背景方法在別的模組下是能正常啟動並執行,也就是說後台部分問題,問題就在前台了。將HTML裡的代碼一行一行的刪除測試,也是一樣的錯誤提示,後來在IE下反覆點了幾次提交,突然發現視窗重新整理了兩次。有一次是reload()是重新整理是正常的。但還有一次呢?
js代碼刪行的試,試過了,那就只有HTML了,刷了兩次,那是不是就意味著提交了兩次呢?查看了一下HTML,覺得沒什麼問題呀,只有兩行<form>...</form>,為什麼有這兩行的呢?刪了,再試。至此,問題元兇找出來了。
想了一下,可能是ajax用的是post提交方式,而頁面又有一個from表單,故此,可能是在提交的時候從頁觸發了兩次提交。所以就一直都出現這種奇奇怪怪的問題了。不過更令人想不通的是,當初為什麼在加多一個<form>的標籤上去呢?.....杯具,鬱悶.......
“ajax form提交的問題”的更多相關文章 》
愛J2EE關注Java邁克爾傑克遜視頻站JSON線上工具
http://biancheng.dnbcw.info/php/332634.html pageNo:11