使用jQuery获取JSON并传递给php然后返回?

使用jQuery获取JSON并传递给php然后返回?,php,jquery,json,twitter,Php,Jquery,Json,Twitter,我想用jQuery获取Twitter搜索,并将其传递给php脚本进行格式化。我是jQuery的新手,所以如果有人能告诉我这一切是否毫无希望,我会很高兴吗 这是我的jQuery,它应该调用Twitter,获取json,然后将json传递给php //jquery $(document).ready(function() { var twUrl = "http://search.twitter.com/search.json?q=twitter&rpp=5&callback=?";

我想用jQuery获取Twitter搜索,并将其传递给php脚本进行格式化。我是jQuery的新手,所以如果有人能告诉我这一切是否毫无希望,我会很高兴吗

这是我的jQuery,它应该调用Twitter,获取json,然后将json传递给php

//jquery
$(document).ready(function() {
 var twUrl = "http://search.twitter.com/search.json?q=twitter&rpp=5&callback=?";

     $.jsonp({
        url: twUrl,
        data: {},
        dataType: "jsonp",
        callbackParameter: "callback",
        timeout: 5000,
        success: function(data){
            $.post("search_back.php", {json_data: data},
                function(data) { $("#search_word").html() });
         }});            
});
php应该提取它,格式化它(不包括在内,但我知道如何做这一部分),然后将它传递回#search_单词

//search_back.php
$output = json_decode($_POST["data"], true);

foreach ($output as $tweet){
   echo $tweet;
}
离这儿近吗? 非常感谢你的帮助

好了,现在很兴奋:)开始工作了,只是发布供参考:

<script>

$(document).ready(function() {
    var twUrl = "http://search.twitter.com/search.json?q=twitter&rpp=5&callback=?";
    $.getJSON(twUrl, 
        function(data) { 
            console.log(data);
            $.post("search_back.php", {json_data: data}, function(data) { 
                console.log(data);
                console.log("ok");
                $("#search_word").html(data) });

        }
    )});


</script>

$(文档).ready(函数(){
var twUrl=”http://search.twitter.com/search.json?q=twitter&rpp=5&callback=?";
$.getJSON(twUrl,
函数(数据){
控制台日志(数据);
$.post(“search_back.php”,{json_data:data},函数(data){
控制台日志(数据);
控制台日志(“ok”);
$(“#搜索词”).html(数据)};
}
)});



看来php已经被json_解码了,是吗?非常感谢你的帮助

是的,这应该行得通。如果您想了解结构库Nicolas,可以使用var_dump($output)!但是,你难道不知道吗:它什么都不做!所以一定是出了什么事!使用$.jsonp(而不是$.ajax或getJson)正确吗?还是我用json_数据和数据传递正确的变量?再次感谢!jsonP是正确的,您不能使用ajax进行跨站点调用。您应该检查$.jsonp中的数据是否确实包含某些内容。使用console.log(数据);(如果您使用firebug)来检查它里面有什么是的,console.log(数据)是空的。我想知道为什么?在php方面,我看到您能够解码json数据。在将其发送回前端之前,您是否尝试过对tweet值使用json_encode(),然后回显新变量?所以
foreach($tweet输出){$storedTweet=json_encode($tweet);echo$storedTweet;}
。只是一个建议。你应该发送一个Json字符串,并在php端使用Json_decode,php脚本对你有用吗?嗯,一些数据通过了,但肯定有不规则之处:)它被列为firebug中的对象,我想这是一个不好的迹象。据我所知,我从twitter上得到了一个json,我应该在php中对json_进行解码($output,true)?我现在来检查一下。你可以用你的php从twitter上获取数据,然后打电话到你自己的服务器……这样只有一个ajax电话是的,@charlietfl说的是对的。您可以使用curl或file_get_contents通过PHP获取json,然后解析它并将其返回到ajax调用。我想它干净多了。你的问题是getJson会自动将来自twitter的字符串转换成一个对象,你不需要它。我不能这样做的原因是因为速率限制。我正在制作一个应用程序,它将(希望)有几千个用户,因此搜索请求(仅限ip级别)将在我的服务器上受到速率限制。因此,客户端是唯一的解决方案,多亏了你们,它现在已经实现了!=)
<?php
$output = $_POST["json_data"];
foreach ($output[results] as $tweet){
    echo $tweet[from_user] . "<br>";
}
?>