作者qsss (Qooo)
看板Ajax
標題[問題] each + post
時間Wed Aug 3 11:17:21 2011
各位好, 我現在碰到一個問題,
我需要將 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
1F:→ pico2k:請附上程式碼,我們沒有天眼通... 08/03 11:33
※ 編輯: qsss 來自: 60.248.184.238 (08/03 11:41)
2F:→ dinos:$('#table tbody tr td:nth-child(1) input').each(.... 08/03 12:50
3F:→ qsss:謝謝, 但是目前抓值部分是沒有問題的, 問題是出在post後 08/03 13:20
4F:→ qsss:AUTO_INCREMENT的id有出現跳號, 是否就表示insert有執行, 08/03 13:21
5F:→ qsss:但是不知道為什麼資料沒進去? 08/03 13:21
6F:→ pico2k:檢查一下Server端在處理資料的程式碼吧 08/03 14:26
7F:→ chrisQQ:先 each 加到一個 json 之後再使用 post 送出會不會好點? 08/03 15:16
8F:→ qsss:阿, 也是可以啦, 只是多做一步而已 :P 08/03 15:49
9F:→ qsss:個人是猜想, 會不會each執行太快, 會造成post跟不上 (亂想的) 08/03 15:49
10F:→ chrisQQ:開 firebug/chrome 開發者工具出來看看,順便在後端做log 08/03 16:36
11F:推 musie:這寫法不好,程式碼是一直往下跑的,他不會等.post的時間, 08/03 23:38
12F:→ musie:依照電腦的處理速度,會會變成瞬間丟出一堆.post給主機, 08/03 23:39
13F:→ musie:所以請善用callBack function~!! 08/03 23:39
14F:→ musie:資料會漏 可能是request掉了,建議用firebug看主控台裡面 08/03 23:40
15F:→ musie:是不是有request的回傳直不是200就知道了。 08/03 23:41
16F:推 senser:你可以資料全部抓在一起傳 另一個方法是在callback中 08/04 16:33
17F:→ senser:iterate下一個元素 用遞迴的方式呼叫這個函式本身 08/04 16:38
18F:→ senser:如此你可以確定request 完成後 在進行下一個loop 08/04 16:39
19F:推 senser:再者就是把.post 設成同步的 總之不要再loop裡這樣作瞜 08/04 16:42