2011-07-06 13 views
2

在我的PHP文件中,我將一些變量從輸入框傳遞到鏈接,該鏈接通過jQuery的ajax load函數在其URL中加載該變量。Jquery Ajax加載僅適用於單個字變量

這整個系統工作完美,但它只適用於單字變量。每當涉及空間時,我的Ajax呼叫就會中斷。我假設這是一個編碼問題,但我也有一些疑問。基本上,它歸結爲我的PHP文件中的這一行代碼,這導致了一個騷動。

是否有可能找出這是否格式正確,或爲什麼這會打破多世界的查詢? 「關鍵字」變量有jQuery的trim函數應用於它。

echo $("#addminimal").load("/addmnml?topic='.$_GET['keyword'].'") ; 

謝謝。

+0

嗨,你可以把你正在使用的jquery.ajax的代碼和你需要什麼樣的例子?所以我們可以讓你顯示batter solutions.thx – Chandresh

回答

2

使用encodeURIComponent,再發送到服務器之前,編碼空間:

$.ajax 
({ 
    type: 'POST', 
    url: 'APage.aspx', 
    data: 'word=' + encodeURIComponent('word with space'), 
    success: function(Data, TextStatus, XHR) 
    { 

    }, 

    error: function(XHR) 
    { 

    } 
});  
1

需要編碼值...

隨着PHP:

echo ' $("#addminimal").load("/addmnml?topic='.urlencode($_GET['keyword']).'") '; 

或JavaScript端:

echo ' $("#addminimal").load("/addmnml?topic="+encodeUriComponent('.$_GET['keyword'].') '; 
3

你根本不需要做任何編碼。 jQuery的爲您代勞:

這裏有一種方法:

echo ' $("#addminimal").load("/addmnml", {topic: "'.$_GET['keyword'].'"}) '; 

這工作,因爲​​接受的鍵值對的方式第二個參數,並執行編碼爲您服務。

或者更好,使用PHP JSON:

$params = json_encode(array("topic" => $_GET['keyword'])); 
echo ' $("#addminimal").load("/addmnml", '.$params.') '; 

希望這有助於。乾杯

0

只是爲了記錄我使用encodeURIComponent方法如下

d_value = $("#dropdown1").val(); 
d_value = encodeURIComponent(d_value); 
$("#dropdown2").load("drop.php?choice=" + d_value); 

它基本上是用來填充下來基礎上,第一個下拉的選擇第2個下降。

相關問題