0

ページに投稿する方法を取得し、投稿された内容をエコーバックして、それが機能しているかどうかを確認しようとして.loadいますが、これを機能させることはできません。私は変数が未定義であることを教えてくれます、ここに私が持っているものがあります:

教師.php:

<?php
echo $POST['class'];

JS:

$('#test').load('teacher.php', {class: 'test'});

何かがクリックされると、それがトリガーされます。

#testデータを<div>投稿したいです。

助けてくれてありがとう。

4

3 に答える 3

1

$_POST代わりです$POST。タイプミスかどうかはわかりませんが、それによって問題が発生することもあります。

于 2012-06-25T22:29:57.237 に答える
0

testIDがの何かがクリックされたときにjQueryからPHPファイルに情報を投稿しようとしている場合は、次のようにします。

Teachers.php:

<?php
    echo $_POST['class'];
?>

JS:

$('#test').click(function() {
    $.post('teacher.php', {class: 'test'},
        function(output) {
            //output = what is echoed from the php file.
            alert(output);
        );
});
于 2012-06-25T22:36:42.863 に答える
0

このような問題のほとんどは、AJAXの非同期性が原因です。要求と応答の AJAX ラウンド トリップが完了しない限り、 AJAX 経由でロードするもの ( .post()、、、、 ) はすべて「存在」しません。.load().ajax().get()

AJAX でロードしたもの (HTML ビット、JSON 応答など)を、AJAX 要求の成功時に呼び出されるコールバック関数で必ず "使用" してください。

たとえば、私のページajax.phpがこの文字列を返すとしましょう: <div id='ajaxdiv'>hello!</div>、この (HTML) 文字列を にロードしたいとします#mydiv:

$("#mydiv").load("ajax.php");
console.log($("#mydiv #ajaxdiv")); <- undefined

リクエストの完了に関係なくコードが続行されるため、機能しません。その代わり:

$("#mydiv").load("ajax.php", function () { console.log($("#mydiv #ajaxdiv"));});

JQuery は、リクエストが完了した場合にのみコールバック関数を使用するため、機能します。{class: test}( URL とコールバック関数の間に配置するだけで、 のようなパラメーターを追加することもできます)。

編集: $POST ではなく $_POST を使用してください。

于 2012-06-25T22:32:18.137 に答える