2014-02-18 59 views
0

我試圖用jQuery.postJavascript數組轉換爲jQuery.post的數據

我要發送的數據發送到PHP腳本不同的值都是這樣

http://example.com/image1.jpg 
http://example.com/image2.jpg 
http://example.com/image3.jpg 
http://example.com/image4.jpg 

我不鏈接有確切數量的這些鏈接,他們可能會有所不同,這取決於用戶與我的腳本交互

我將這些鏈接存儲在JavaScript數組「fileLinks」中。

我想要做的是發送這些鏈接使用jQuery.post

我可以格式化在這種形狀這些鏈接到PHP?

jQuery.post(MyAjax.ajaxurl, 
      { action : 'ajax-rform', 
       link1: http://example.com/image1.jpg, 
       link2: http://example.com/image2.jpg, 
       link3: http://example.com/image3.jpg, 
       link4: http://example.com/image4.jpg, 
      }, 
      function(data){ 
       jQuery("#fileupload").after('<h1>Success</h1><p>Your registration has been recieved.</p>'); 
      } 
      ); 

在PHP中我只需要使用循環和更換LINK1和http://example.com/image1.jpg與陣列和PHP將遍歷它爲我,但我應該在JavaScript做什麼?

感謝

回答

2

只是傳遞數組。 jQuery將使用數組方式進行編碼,而PHP將決定它放回一個數組:

jQuery.post(MyAjax.ajaxurl, 
      { action : 'ajax-rform', 
       link: fileLinks 
      }, 
      function(data){ 
       jQuery("#fileupload").after('<h1>Success</h1><p>Your registration has been recieved.</p>'); 
      }); 

在PHP中,你可以訪問陣列$_POST['link']

+0

當我使用它時,它在同時連接中發送fileLinks值,並且由於該php腳本運行多次,我希望PHP只執行一次。有什麼要做的嗎? – Muhammad

+0

如果發生這種情況,那是因爲其他原因。此代碼不會導致多個連接。 – Barmar

+0

謝謝巴爾默 - 是的,你是對的,我正在使用.each方法,它導致了這個問題。 – Muhammad

0

爲什麼不創建一個JSON數組,然後使用PHP的json_decode方法?

0

也許你應該只是做一個數據對象發送,從您的陣列來填充它這樣

var postData = { action : 'ajax-rform' }; 
for(var i = 0; i < fileLinks.length; i++){ 
postData["link"+(i+1)] = fileLinks[i]; 
} 

,然後用它在你的AJAX

jQuery.post(MyAjax.ajaxurl, 
    postData, 
    function(data){ 
     jQuery("#fileupload").after('<h1>Success</h1><p>Your registration has been recieved.</p>'); 
    } 
);