4

私がしたいこと

<div class="result">テキストフィールドに書き込むときは、 PHPがエコーしている内容を埋めたいです。

しかし、うまくいきません!

Jクエリ

$(document).ready(function() {
    var search = $("#search");
    if (search.val() !== '') {
        search.keyup(function() {
            $.post("index.php", { search : search.val()}, function(data) {
                $(".result").html(data);
            });
        });
    }
});

php

    if (isset($_POST['search'])) {
        echo 'hello';
    }

html

<input type="text" name="search" id="search"/>
<br />
<div class="result"></div>

問題

入力を入力しても何も起こらず、キーアップ時に入力されたデータを POST することを意味していました (新しい文字を入力するとき/削除するとき.

それが機能するのを妨げているのは何ですか?私は jQuery が初めてです。

ありがとう。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
4

7 に答える 7

5

これは間違っています。

if (search.val() !== '') {

上記の行は、

if (search.val() != '') {

編集:

次に、if 条件を keyup 関数内にラップします。

$(document).ready(function() {
    var search = $("#search");

        search.keyup(function() {
            if (search.val() != '') {
                $.post("getInputs.php", { search : search.val()}, function(data) {
                    $(".result").html(data);
                });
            }
        });
});
于 2013-04-12T12:29:05.393 に答える
0

私はあなたのロジックの一部を書き直して、それを機能させることができました。1つは、価値があることを確認するためのチェック方法です。文字列を比較する代わりに、長さをチェックしています。また、イベントをフィールドにバインドする代わりに、イベントをドキュメントにバインドし、フィールドをターゲットにします。それを試してみてください:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<input type="text" name="search" id="search"/>
<br />
<div class="result"></div>

<script>
    $(document).ready(function() {
        $(document).on('keyup', 'input#search', function() {
            if($(this).val().length > 0) {
                $.post('index.php', {"search":$(this).val()}, function(data) {
                    $('div.result').html(data);
                });
            }
        });
    });
</script>
于 2013-04-12T12:46:20.120 に答える
0
// when the html is loaded
$(document).ready(function() {
    // find an element with the id 'search'
    var search = $("#search");

    // if this element's value is NOT an empty string -- oh look, it is!
    if (search.val() !== '') {
        // well, going to skip all this here then
        search.keyup(function() { // don't care
            $.post("index.php", { search : search.val()}, function(data) { // don't care
                $(".result").html(data); // don't care
            });
        });
    }

    // YAAAAY! All done!
});
于 2013-04-12T12:47:31.233 に答える
0
$(document).ready(function() {
    var search = $("#search");


});

これは、ドキュメントの準備ができたときにのみ発生しますが、キーアップでは発生しません。つまり、var $("#search").val() は空白になります。

コードを変更して、キーアップ ストロークごとに入力値をキャプチャします。

$(document).ready(function() {
         search.keyup(function() {

             var value = $("#search").val();
             if(value!="")
            {
             $.post("index.php", { search : value}, function(data) {
                $(".result").html(data);
            });
           }
        });

});
于 2013-04-12T12:35:28.133 に答える