2012-08-05 113 views
0

我想在ajax .post jquery函數中設置一個while循環。它甚至有可能嗎?如果不是,是否有解決問題的方法?用戶輸入數據是動態的,每個用戶的數量都會發生變化。這是必須的。這是下面的代碼。while循環在jquery ajax post

$('#send').click(function() { 
    var rad = 'radius_' + k + ' : ' + 'radius_' + k + ', '; 
    var add = 'address_' + k + ' : ' + 'address_' + k + ', '; 
    var latit = 'latitude_' + k + ' : ' + 'latitude_' + k + ', '; 
    var longit = 'longitude_' + k + ' : ' + 'longitude_' + k + ', '; 

    $.post('ajax_set_place.php', { 
     while (k < f) { 
      print(rad); 
      print(add); 
      print(latit); 
      print(longit); 
      var k = k++; 
     }, 
     user_id: user_id, 
     number_of_places: number_of_places 
    }, 
    function(){ 
     $('#message_sent').html('Message Sent!'); 
    } 
}); 
+0

'k'和'​​f'從哪裏來,你認爲'print( )'在JavaScript中做了什麼(我敢肯定它不會做你認爲它做的事),你究竟想要做什麼?另外,''rad','add','latit'和'longit'的值在'while'循環內不會改變,恰好處於使您的代碼無效的位置。 – 2012-08-05 19:54:32

+0

k表示1. f表示每個用戶唯一的號碼。它表示用戶放入的輸入總數。對於每個循環,我希望變量rad,add,latit和longit中的k增加1。這將生成我想通過.post()發送的所有鍵和值的列表。這就是我想要做的,正如你所說的那樣,它使我的代碼無效。 – jason328 2012-08-05 20:08:19

+0

您應該將該循環抽象爲函數/方法,並在$ .post()成功回調中根據需要進行實例化。將抽象方法需要的任何數據作爲參數傳遞。 – 2012-08-05 20:09:43

回答

1

我不認爲這是可能的,因爲數據參數是一個對象。

你想達到什麼目的?

如果你想保持用戶的數據發佈到一個文件中,我會使用

// while loop here 

function doPost(){ 
$.post(url, {dynamic: dynamicdata}); 
} 
setInterval(doPost(), 100); 

...並使用while循環外的動態更新參數。 如果不是。我不確定你想達到什麼樣的目標。 我希望這個答案在某種程度上是有幫助的。

哦,你可以直接通過整理你的代碼看起來你缺少一個}末關閉您的.post()功能和自定義數據將是做這樣的事情

var data = {name: dynamic}; // could insert while loop to edit what date is equal to. 
$.post('', data); 
+0

我讓用戶根據他選擇的數字輸入一些數據。數字越高,用戶插入的輸入越多。因此,我想要在.post中運行while循環來反映用戶輸入數據的總量。思考完後,我可以在.post中插入用戶清空的字段嗎?這會導致效率問題嗎? – jason328 2012-08-05 19:53:17

+0

我不認爲它會。 :)只是在你的PHP記得檢查'if(!empty($ _ POST ['value'])){}' – 2012-08-05 20:00:20

+0

我對我的答案做了一些調整。 – 2012-08-05 20:05:20

1

什麼其他的事情一個,將while循環與其他元素分開。 修復它們爲你

在另一個說明,我不認爲你可以發送一個while循環。把循環放在一個函數中,並且只是傳遞函數,顯然你需要弄清楚如何傳遞變量:

whileFn: function() { 
    while (/*condition*/) { 
     // do something here 
    } 
}