2010-11-24 82 views
0

我有這段代碼發送JSON數據到一個PHP文件使用JQuery,但它不工作。它在控制檯中顯示沒有錯誤,但不輸出。如果我使用var_dump,它會在php文件中輸出array(0){}。這裏是jQuery代碼:JSON數據使用JQuery發送到PHP不工作

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

<html> 
<?php 
    function searchResults($q) { 
    $host = "http://search.twitter.com/search.atom?q=" . urlencode($q) . "&rpp=100"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $host); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

    //Raw xml 
    $result = curl_exec($ch); 
    curl_close($ch); 
    $xml = simplexml_load_string($result); 
    return json_encode($xml); 
    } 
    ?> 
    <head> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"> 
    </script> 
    </head> 
    <body> 
    <script type="text/javascript"> var msg_top = <?php echo 
    searchResults('windows');?>; 
    </script> 
    <script type="text/javascript"> 
    $(document).ready(function() 
    { 
    $.ajax({ 
    url: "script.php", 
    type: "POST", 
    dataType: "json", 
    data: msg_top, 
    success: function(){ 
    alert("success"); 
    } 
    }); 
    alert("failure"); 
    }); 
    </script> 
</body> 
</html> 

這裏是我的PHP代碼:

<?php 
    var_dump($_POST); 
    ?> 
+0

可能是愚蠢的,但你試過從$ _REQUEST而不是抓住它POST?我以前遇到過這個問題。 – 2010-11-24 14:25:12

+0

是否從服務器上的twitter獲取數據,將其發送到瀏覽器,然後將其發送回服務器進行解析,然後將解析的數據發送回瀏覽器?爲此使用json的原因是因爲它可以直接在瀏覽器上使用,您不需要將其發送到服務器進行解析。 – 2010-11-24 14:28:31

+0

@John Boker,實際上我需要將這些推文存儲到mysql中。在這裏第1我試圖第1看看我是否收到並正確接收到PHP腳本。 – XCeptable 2010-11-24 14:40:16

回答

0
data: "msg_top", 

應該是不帶引號:

data:msg_top, 
0

在此行中:

var msg_top = <?php echo searchResults('windows');?>; 

使字符串JSON:

var msg_top = JSON.parse("<?php echo searchResults('windows');?>"); 

而且還data: msg_top

0

你試過

$msg = json_decode(stripslashes ($_POST['msg_top']), true);