1

私はこのJavaScriptコードを持っています:

$(document).ready(function(){ 
           $('#sel').change(function(){

        $.ajax({
                      type: "POST", 
                      url: "modules.php?name=TransProject_Management&file=index",
                      data: "&op=index_stat&stat="+$(this).val(),
                      cache: false,
                      success: function(data) {
                         //alert(data);
                         $("#ajax_results").html(data);
                     }
                  }); 

});
});

ステータスの変更時に、ページをリロードせずに div を更新する必要があります。しかし、それは空白のページを返します。成功時に結果を警告しようとすると、応答が返されます。また、要素を検査して確認しましたが、問題ありません。問題は、空白のページが返されることです。

私が取り組んでいるファイルは、ajax で呼び出したものと同じです (modules.php?name=TransProject_Management&file=index)。

html:

<body>
//...
<div id="ajax_results">
//.....
//somewhere here is the select option <select id="sel">......</select>
//.....
</div>
</body>

どんな助けでも、非常に高く評価されます。

4

4 に答える 4

1

次のコードを使用して、応答 html を返します。

echo json_encode(array($your_response));

次に、JavaScript で、次のようにデータを参照する必要があります。

success: function(data) {
    $("#ajax_results").html(data[0]);
}

これは配列になっているためです。

于 2013-01-15T20:27:03.907 に答える
0

うーん、一見コードはよさそうだ。Chromeデバッグツールを使用してみましたか?F12キーを押して、[ネットワーク]タブを確認します。これにより、何が返されるかが表示されます。アラートを使用せずにデバッグすることもできるので、ステップスルーしてプロパティが正確に何であるかを確認できます。

考えてみれば、返されるデータに「d」を追加する必要があるかもしれません。とにかく、私が上で提案したことを行う場合は、行に一時停止を置き、コードを実行すると、必要なものが表示されます。

于 2013-01-15T20:04:47.813 に答える
0

thisあなたのajax関数では、jQuery XHRオブジェクトではなくオブジェクトを参照し$('#sel')ます。ajax関数の前に変数に割り当てて、var sel = $(this)後で関数内で使用します。これを試して:

$('#sel').change(function(){
        var sel = $(this);
        $.ajax({
                      type: "POST", 
                      url: "modules.php?name=TransProject_Management&file=index",
                      data: "&op=index_stat&stat="+sel.val(),
                      cache: false,
                      success: function(data) {
                         //alert(data);
                         $("#ajax_results").html(data);
                     }
               }); 

        });
});
于 2013-01-15T20:08:37.860 に答える
0

質問の下のコメントに基づいて、同じスクリプトを使用してページを表示し、javascript を呼び出しているようです。<html>このスクリプトは、タグで始まる完全な html ページを返すようです。

ページは 1 つのタグしか持つことができず<html>、別のページの要素内に完全な html ページをダンプしようとすると、無効な html と予測できない結果につながります。

解決策は、 ajax スクリプトに、 に挿入する必要がある必要な要素 / html のみを返すようにすること#ajax_resultsです。

于 2013-01-15T20:30:18.677 に答える