2010-11-24 7 views
0

JQueryを使用してJSONデータをPHPファイルに送信するこのコードはありますが、動作しません。コンソールにエラーは表示されませんが、出力されません。 var_dumpを使うとPHPのarray(0){}を出力します。ここでjQueryのコードは次のとおりです。JSONデータがPHPにJQueryを使用して送信されました。

<!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の代わりからそれをつかんで試してみました役職?私は以前にその問題を抱えていました。 –

+0

あなたはサーバー上のTwitterからデータを取得してブラウザに送信し、それを解析してサーバーに送り返し、解析されたデータをブラウザに送り返しますか? jsonを使用する理由は、ブラウザで直接使用できるためです。解析するためにサーバーに送信する必要はありません。 –

+0

@John Boker、実際にはこれらのつぶやきをmysqlに保存する必要があります。ここで私は最初に私が受け取って&それらをPHPスクリプトに正しく受信するかどうかを見てしようとしています。 – XCeptable

答えて

0
data: "msg_top", 

引用符でなければなりません:

この行で
data:msg_top, 
+0

私は引用符を削除しましたが、同じ結果が出ました。 js varにphp varの割り当てを見ることができますか?ウェブ検索でこのようなことをしているのですか? – XCeptable

0

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

は、文字列のJSONを行います

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

data: msg_top

+0

@Josiah Ruddell、コンソールで2つのエラーが発生しました。最初の1つはエラーウィンドウにこのPHP割り当てステートメントをハイライト表示し、すべての結果に&error ')'が表示されていません。 2番目はdataTypeで定義されていないJsonです:json、line – XCeptable

+0

jsonの周りに引用符を入れて、このエラーが消えたら、同じmsg_topと言います。今はエラーがPHPの割り当てステートメント – XCeptable

+0

は、それが無効なjsonのように見えます。 http://www.jsonlint.com/を使用して、出力しているjsonを検証します。 –

0

あなたは愚かなことかもしれません

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

はい、私は同じ結果を試しました。実際にはエラーは "var msg_top = JSON.parse(" <?php echo searchResults( 'windows');?> ");"という行にあります。それは 'リストの後に'不足しています) – XCeptable

+0

OKl、addslashes()&エラーがなくなったが、PHPの結果はありません。 – XCeptable

関連する問題