2012-06-15 29 views
0

我想用jQuery獲取Twitter搜索並將其傳遞給一個用於格式化的php腳本。我是jQuery的新手,所以如果有人能告訴我這是絕望的話,會不會喜歡?使用jQuery獲取JSON並傳遞給php並返回?

這是我的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_word。

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

foreach ($output as $tweet){ 
    echo $tweet; 
} 

這是密切的嗎? 真的很感謝您的幫助!

+1

這是,應該工作。你可以var_dump($輸出),如果你想知道結構 –

+0

謝謝尼古拉斯!但是,你不知道它:它什麼都不做!所以一定有什麼問題!使用$ .jsonp(而不是$ .ajax或getJson?)是正確的嗎?或者,我是否將正確的變量與json_data和數據一起傳遞?再次感謝! – knutole

+1

jsonP是正確的,你不能使用ajax做一個crosssite調用。你應該檢查$ .jsonp中的數據是否確實有內容。use console.log(data); (如果你使用螢火蟲)檢查它裏面有什麼 –

回答

0

好了,現在興奮:)得到它的工作,只是張貼供參考:

<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> 

<?php 
$output = $_POST["json_data"]; 
foreach ($output[results] as $tweet){ 
    echo $tweet[from_user] . "<br>"; 
} 
?> 

似乎什麼去PHP已經json_decoded,真的嗎?非常感謝你的幫助!

+0

你應該發送一個Json字符串,並在php端使用json_decode,php腳本是否適用於你? –

+0

嗯,有些數據會通過,但有明確的不規則性。:)它被列爲螢火蟲中的對象,這是一個壞跡象,我想。從我的理解我得到一個JSON從Twitter,我應該json_decode($輸出,真)在我的PHP?我現在檢查一下。 – knutole

+0

可以使用你的PHP從Twitter獲取數據,並打電話給你自己的服務器......只有一個AJAX調用這種方式 – charlietfl

相關問題