2011-12-30 127 views
1

是否有可能發送一個參數(例如一個get變量)與getJSON到一個PHP文件,如果是的話如何做到這一點?通過getJSON發送一個get變量給php文件?

下面的代碼不起作用,但希望它顯示我試圖完成。

var url = "http://www.address.com/" 

$.getJSON('http://anotheraddress.com/messages.php?url=+escape(url))', function(data) { 
    // code here 
}); 
+0

它不工作的原因是因爲你已經得到了字符串內的變量。按照某些答案中的建議,在你的+字符之前剪下字符串以解決問題,或者使用第二個參數作爲數據。 – powerbuoy 2011-12-30 17:27:15

回答

3

$.getJSON接受數據的另一個參數:

var url = "http://www.address.com/" 

$.getJSON('http://anotheraddress.com/messages.php', { url: escape(url) }, function(data) { 
    // code here 
}); 
1

您可以將您的數據作爲第二個參數:
jQuery.getJSON(url [, data] [, success(data, textStatus, jqXHR)])doc

url = "http://www.address.com/" 
$.getJSON({ 
    "http://anotheraddress.com/messages.php", 
    { url: escape(url) }, 
    function(data) {} 
}) 
3

你的jQuery的可能是這個樣子

$.getJSON("messages.php", 
{ 
    data1: value1, 
    data2: value2, 
    url: escape(url) 
}, 
function(data) { 
    alert(data.yourval); 
}); 

你應該記住的唯一的事而使用getJSON的是,php頁面message.php應該返回JSON字符串作爲響應。所以你在文件末尾做了這樣的事情。

echo json_encode($ responseArray); //切記不要回音或輸出任何東西或jQuery將不會執行

+0

他想從js腳本發送一個變量到他的php腳本,而不是相反的;) – Robin 2011-12-30 17:21:11

+0

@Robin,它沒有那麼不同....做到這一點。我將更新... – Starx 2011-12-30 19:16:03

2

試着改變你的代碼:

$.getJSON('http://anotheraddress.com/message.php?url='+escape(url), function(data) { 
    // code here 
}); 

現在您可以像這樣訪問您的message.php文件中的url變量:

$url = $_GET['url']; 
+0

是PHP文件中真正需要的$ url = $ _GET ['url']? $ _GET ['url']不夠嗎? – holyredbeard 2011-12-30 17:48:50

+0

@JasonCraig - 對你而言,是的。 – Cyclonecode 2011-12-30 17:52:40

+0

在我看來,與James Thorpe,Starx和我所提出的相比,這是一個糟糕的解決方案。 – Robin 2011-12-31 10:49:18