0

JSコードからPHPコードへの文字列を取得できません

テキスト入力でEnterキーを押すと初期化されるコードは次のとおりです。

$('#user').keypress(function(e) {
    if(e.which == 13) {

  var val = $(this).val();

$.ajax({
    type: 'POST',
    url: 'index.php',
    data: ({'latt':val
            })
        });


<?php

$val = $_POST['latt'];

echo "alert('$val')";

?>

    }
});

ここで、#userはこのテキスト入力のIDです

コードを実行すると、何も表示されないアラートが表示されます

JSvalが空ではないことを正確に知る前に

前もって感謝します

PS私のページはindex.phpです

4

3 に答える 3

1

PHPコードは、ページがブラウザに送信される前に実行されます。そのPHPブロックは$_POST['latt']、ページに移動したときの値を単純にエコーします。成功コールバックでサーバーからの応答にアクセスする必要があります。

$('#user').keypress(function(e) {
    if (e.which == 13) {

        var val = $(this).val();

        $.ajax({
            type: 'POST',
            url: 'index.php',
            data: {
                'latt': val
            },
            success: function(data) {
                alert(data.responseText);
            }

        });
    }
});
于 2012-12-08T17:22:05.587 に答える
0

明らかに、最初のページの読み込み時に、イベントがまだ発生していないため、空白のアラートが表示されます。そのため、ajaxを介して値が送信されておらず、エコー部分は無条件でページ実行中です。

ただし、実際のイベントが発生すると、index.phpページ全体が応答として返されるため、実際のアラートが再度発生することはありません。したがって、クライアントサーバーの要求/応答が完全に発生するように、javascriptとphpの両方の部分を分離することをお勧めします。

于 2012-12-08T18:47:54.623 に答える
0

オブジェクトを括弧で囲んでいます(data: ()行を参照)。括弧を削除すると、コードが機能するはずです。

$.ajax({
    type: 'POST',
    url: 'index.php',
    data: { 'latt': val }
});
于 2012-12-08T17:23:08.407 に答える