2010-11-24 5 views
0

У меня есть этот кусок кода для отправки данных JSON в файл php с использованием JQuery, но он не работает. Он не показывает ошибок в консоли, но не выводит. Если я использую var_dump, он выводит массив (0) {} в php-файл. Вот 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 вместо ПОСЛЕ? Раньше у меня была эта проблема. – 2010-11-24 14:25:12

+0

вы получаете данные из твиттера на сервере, отправляете их в браузер, а затем отправляете обратно на сервер, который нужно разобрать, а затем отправляете проанализированные данные обратно в браузер? причина использования json для этого заключается в том, что его можно использовать непосредственно в браузере, вам не нужно отправлять ее на сервер для синтаксического анализа. – 2010-11-24 14:28:31

+0

@ Джона Бокера, на самом деле мне нужно хранить эти твиты в mysql. Здесь 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); 
Смежные вопросы