2011-12-30 125 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