2

AJAX を介してニュース サイトから RSS フィードを取得し、それを PHP に送信して作業できるページを作成しようとしています。ニュース フィードはオブジェクト配列として返されます。そのまま、またjson文字列として投稿してみました。post メソッドは成功しているように見えますが、PHP は未定義のインデックス通知を出します。AJAX と PHP を使用するのはこれが初めてで、PHP 側からのデータの取得に問題があるようです。

エラー:

Notice: Undefined index: data in ...\index.php on line 33

現在のコードは次のとおりです。

アヤックス側

url = 'http://feeds.bbci.co.uk/news/rss.xml?edition=int';

$.ajax({
    type: "GET",
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
    dataType: 'json',
    error: function(){
            alert('LOAD ERROR, INVALID URL');
    },
    success: function(xml){
            values = xml.responseData.feed.entries;
            var senddata = JSON.stringify(values);
            console.log(senddata);
            $.ajax({
                type: "POST",
                url: "index.php",
                data: {data : senddata},
                success: function(){
                    alert("postdone!");
                },
                error: function(){
                    alert("posterror!")
                }
            });
        }
});

php側

<?php
    $data = json_decode(stripslashes($_POST['data']));
    echo $data;         
?>
4

1 に答える 1

2

ifその警告を回避するには、コードを で囲みます。

if (isset($_POST['data'])) {
    $data = json_decode(stripslashes($_POST['data']));
    echo $data;  
}

問題は、ブラウザから index.php にアクセスすると、POST リクエストがないため、もちろん$_POST空で$_POST['data']設定されていないことです。

ポイントを理解していただければ幸いです。

編集:

うーん、深刻な問題は見当たりません。実際には、2 つの ajax 呼び出しをネストする代わりに、php.net/manual/en/book.curl.php を使用して RSS から直接データを取得することをお勧めします。

于 2013-07-21T14:54:09.777 に答える