2010-11-24 64 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);