[問題] each + post

看板Ajax作者 (Qooo)時間14年前 (2011/08/03 11:17), 編輯推噓3(3016)
留言19則, 6人參與, 最新討論串1/1
各位好, 我現在碰到一個問題, 我需要將 table 中的每一筆資料都寫進 mysql 中, 我是使用 $('#table tbody tr') .each(function(i){}) 讀取每一筆資料行, 在裡面配合 $.post 的方式來寫入資料 可是呢, 有時候就會出現少幾筆資料的情況, 檢查 table 也確實有 id 跳號的情況, 想 說用 alert 來檢查看看是不是資料有抓錯, 但是有使用的 alert 的情況下, 卻又沒有 產生一樣的問題 不知道有沒有什麼方式可以提供, 來找出問題點 先謝謝各位 ---------------------------------------------------------------------------- 抱歉, 補上程式碼 $('#table tbody tr').each(function(i){ c = $(this).find('td').eq(0).find('input').val(); $.post( 'insert.php', { 'ColA' : a, 'ColB' : b, 'ColC' : c } ); }); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.184.238

08/03 11:33, , 1F
請附上程式碼,我們沒有天眼通...
08/03 11:33, 1F
※ 編輯: qsss 來自: 60.248.184.238 (08/03 11:41)

08/03 12:50, , 2F
$('#table tbody tr td:nth-child(1) input').each(....
08/03 12:50, 2F

08/03 13:20, , 3F
謝謝, 但是目前抓值部分是沒有問題的, 問題是出在post後
08/03 13:20, 3F

08/03 13:21, , 4F
AUTO_INCREMENT的id有出現跳號, 是否就表示insert有執行,
08/03 13:21, 4F

08/03 13:21, , 5F
但是不知道為什麼資料沒進去?
08/03 13:21, 5F

08/03 14:26, , 6F
檢查一下Server端在處理資料的程式碼吧
08/03 14:26, 6F

08/03 15:16, , 7F
先 each 加到一個 json 之後再使用 post 送出會不會好點?
08/03 15:16, 7F

08/03 15:49, , 8F
阿, 也是可以啦, 只是多做一步而已 :P
08/03 15:49, 8F

08/03 15:49, , 9F
個人是猜想, 會不會each執行太快, 會造成post跟不上 (亂想的)
08/03 15:49, 9F

08/03 16:36, , 10F
開 firebug/chrome 開發者工具出來看看,順便在後端做log
08/03 16:36, 10F

08/03 23:38, , 11F
這寫法不好,程式碼是一直往下跑的,他不會等.post的時間,
08/03 23:38, 11F

08/03 23:39, , 12F
依照電腦的處理速度,會會變成瞬間丟出一堆.post給主機,
08/03 23:39, 12F

08/03 23:39, , 13F
所以請善用callBack function~!!
08/03 23:39, 13F

08/03 23:40, , 14F
資料會漏 可能是request掉了,建議用firebug看主控台裡面
08/03 23:40, 14F

08/03 23:41, , 15F
是不是有request的回傳直不是200就知道了。
08/03 23:41, 15F

08/04 16:33, , 16F
你可以資料全部抓在一起傳 另一個方法是在callback中
08/04 16:33, 16F

08/04 16:38, , 17F
iterate下一個元素 用遞迴的方式呼叫這個函式本身
08/04 16:38, 17F

08/04 16:39, , 18F
如此你可以確定request 完成後 在進行下一個loop
08/04 16:39, 18F

08/04 16:42, , 19F
再者就是把.post 設成同步的 總之不要再loop裡這樣作瞜
08/04 16:42, 19F
文章代碼(AID): #1EEBt4D3 (Ajax)
文章代碼(AID): #1EEBt4D3 (Ajax)