1

AJAX を使用して PHP スクリプトを呼び出そうとしています。deleteitem.php スクリプトに単純なエコー アラートを配置して、呼び出されているかどうかを確認しましたが、何をしても呼び出されません。PHP スクリプトは、それを呼び出している js スクリプトと同じフォルダーにあります。

誰かがそれがなぜなのか教えてもらえますか? 考えられる原因は何ですか?

$.ajax({
    url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID,
        type: "POST",
        dataType: "html",
        success: function(data)
        {
           //do something here
        }
});
4

9 に答える 9

2

それがそれを呼んでいるかどうかをどのように知ることができますか?javascriptアラート ステートメントを に追加しますcallback。例えば

alert(data);

PHP scriptすべてが正しければ、からエコーした内容が表示されます。

于 2012-10-28T10:42:35.247 に答える
1

私が最初にすることは、成功コールバックの結果をチェックすることです。

$.ajax({
    url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID,
        type: "POST",
        dataType: "html",
        success: function(data)
        {
           alert(data); // Alert the results
        }
}); 

ほとんどの場合(とにかく自分自身で)、ajaxによって更新されていないことに気付いたときは、通常、スクリプトimの呼び出しでPHPエラーが発生します。このメソッドは、PHPがそのページでスローするエラーを警告します:)

また、ブラウザコンソールをチェックして、JavaScriptにエラーがないかどうかを確認してください。

于 2012-10-28T10:49:21.830 に答える
1

Amitdが言ったように、 GETリクエストとPOSTリクエストを組み合わせてはいけません。コードは次のようになります。

$.ajax({
    url: 'deleteitem.php?task=deleteArtwork&id='+artworkObjectID,
        type: "GET",
        dataType: "html",
        success: function(data)
        {
           alert(data); // alert on success
        }
});

それでも応答がない場合は、サーバーエラーが発生している可能性があるため、スクリプトの最初に、次のような行を.phpスクリプトに配置する必要があります。

error_log("script was called, processing request...");
error_log("passed artworkObjectId is: " . $_GET["artworkObjectID"]);

次に、メッセージがある場合は、.logファイル(apacheサーバーで実行されている場合はapacheログファイル/フォルダーにあります)をチェックインできます。

于 2012-10-28T10:50:44.783 に答える
1

サーバーコードが呼び出されているかどうかを確認するには、Firebugで渡されたパラメーターとAJAX応答を確認します。便利だと思います。

于 2012-10-28T10:53:11.063 に答える
1

PHP スクリプトの出力はdata(要求が成功したと仮定して) に配置されます。

//do something hereコメントを何かを行うコードに置き換えるまで、何もしません。

于 2012-10-28T10:42:52.517 に答える
1

次のようなものを試してください..以下のようなデータを渡します

 $.ajax({
                    url: "deleteitem.php",
                    type: "POST",
                     data: { 
                          'task': 'deleteArtwork', 
                          'id': artworkObjectID
                     },              
                    success: function (msg) {

                    }
                });
于 2012-10-28T10:44:41.650 に答える
0

まず第一に、(あなたの場合)に保存された返されたデータを出力していません。data また、AJAXリクエストはPOSTですが、いくつかのGET変数に沿って解析しています。AJAXを介して変数を操作している場合は、GETを使用することをお勧めします。

$.get('deleteitem.php?task=deleteArtwork&id='+artworkObjectID, function (data) {
    //On success, perhaps print the returned data:
    alert(data);
})
于 2012-10-28T10:49:29.377 に答える