2010-05-02 113 views
8

我有一個$ GET()調用PHP頁面,需要4個GET參數。由於某些原因,儘管給$ .get()調用了全部4個,但它只通過了前兩個。當我用chrome查看開發控制檯時,它顯示了被調用的URL,並且它只傳遞動作和dbname。繼承人的代碼:JQuery .get()只傳遞URL中的前兩個數據參數

$.get('util/util.php', { action: 'start', dbname: db, url: starturl, crawldepth: depth }, function(data) { 
     if (data == 'true') { 
      status = 1; 
      $('#0').append(starturl + "<ul></ul>"); 
      $('#gobutton').hide(); 
      $('#loading').show("slow"); 
      while(status == 1) { 
       setTimeout("update()",10000); 

      } 
     } else { 
      show_error("Form data incomplete!"); 
     } 
    }); 

和繼承人的URL,我在開發者控制檯中看到:

http://localhost/pci/util/util.php?action=start&dbname=1hkxorr9ve1kuap2.db

**編輯** 我被告知,我需要編碼網址我正試圖通過標題。我將如何去編碼它在JavaScript中,並解碼它在PHP?

+0

您確定定義了「starturl」和「depth」嗎?你也必須對URL進行編碼。 – 2010-05-02 10:12:19

+0

是的,他們被定義。我如何編碼網址? – 2010-05-02 10:13:21

回答

3

是否確定starturldepth變量已定義? $ .get()之前的一個簡單的alert()將足以進行檢查。

關於編輯,您可以使用encodeURIComponent函數對JavaScript中的字符串進行編碼。並在urldecode的PHP中再次解碼。他們都採取一個字符串參數。

0

可能您需要檢查您的輸入字符串是否正確引用。內部jQuery將使用您的param()方法指定的參數映射構建參數字符串。此方法將構造鍵和值的對象,如果您錯誤地引用了鍵和值,則該對象可能無法解析。

@ Felix Kling:jQuery使用encodeURIComponent自動編碼參數字符串的鍵和值。