0

問題

こんにちは、Jquery POST と PHP を使用した単純な検索システムがあります。検索後、次のような情報が表示されます。

while($row = $search->fetch(PDO::FETCH_ASSOC)) {
echo 
'
<br /><br />
'.$row['result_name'].' <br /> Data: <a href="#" id="hover">Click to see</a><br /><br />
';

}

ID「ホバー」(検索後)をホバーすると、Javaスクリプトがデータでいくつかのdivを埋め、データを取得するために別のPOSTを送信します。

それが私がやったことです:

ホバーの場合:

$("#hover").hover(function() {
  $.post("ajax_search.php?type=sidebar", { sidebar : seach.val() }, function(get_data) {
stop_load();
$("#sidebar").html(get_data);
     });
}); 

PHP:

if (isset($_GET['type']) && $_GET['type'] == 'sidebar' && isset($_POST['sidebar'])) 
{
    $data = htmlentities(trim($_POST['search']));
    $similar = "'%$data%'";
    $search = $connect->prepare("SELECT * FROM results WHERE result_name LIKE $similar");
    $search->execute(); 

    while($row = $search->fetch(PDO::FETCH_ASSOC)) {
        echo 
        '
        <br /><br />
        '.$row['result_name'].' <br /> Data: '.$row['rsult_data'].'<br /><br />
        ';

    }
}

しかし、ホバーでは何も起こりません!

質問

私は何を間違えましたか?ホバー時に何もしないのはなぜですか?スクリプトの実行後にエコーされた ID を使用できますか?

追加

完全な jquery コード:

$(document).ready(function() {

    var search = $("#search");

        $("#bla").click(function() {
            if (search.val() != '') {
                load();
                $.post("ajax_search.php", { search : search.val()}, function(data) {
                    stop_load();
                    $(".result").html(data);
                });
            } 
            else 
            {
                $(".result").html('');
            }
            $("#hover").hover(function() {
                $.post("ajax_search.php?type=sidebar", { sidebar : seach.val() }, function(get_data) {
                    stop_load();
                    $("#sidebar").html(get_data);
                });
            });                 

function load() {
    $('.load').html('<img src="http://i.imgur.com/ZoI4x5I.gif" />');
}
function stop_load(){
    $('.load').html('');
}   
});

完全な PHP コード:

if (isset($_POST['search'])) 
{
    $data = htmlentities(trim($_POST['search']));
    $similar = "'%$data%'";
    $search = $connect->prepare("SELECT * FROM results WHERE result_name LIKE $similar");
    $search->execute();

    if ($search->rowCount() == 0) {
        echo 'You searched for <b>'.$data.'</b>, 0 results found.';
    } else {
        $results = $search->rowCount();
        echo 'You searched for <b>'.$data.'</b>, '.$results.' results found.';
        while($row = $search->fetch(PDO::FETCH_ASSOC)) {
            echo 
            '
            <br /><br />
            '.$row['result_name'].' <br /> Data: <a href="#" id="hover">Click to see</a><br /><br />
            ';

        }
    }
}
if (isset($_GET['type']) && $_GET['type'] == 'sidebar' && isset($_POST['sidebar'])) 
{
    $data = htmlentities(trim($_POST['search']));
    $similar = "'%$data%'";
    $search = $connect->prepare("SELECT * FROM results WHERE result_name LIKE $similar");
    $search->execute(); 

    while($row = $search->fetch(PDO::FETCH_ASSOC)) {
        echo 
        '
        <br /><br />
        '.$row['result_name'].' <br /> Data: '.$row['rsult_data'].'<br /><br />
        ';

    }
}

ありがとう!

4

1 に答える 1

1

これを試してください..あなた<a href="#" id="hover">が動的に追加されているので

$(document).on("mouseenter","#hover",function() {
     $.post("ajax_search.php?type=sidebar", { sidebar : seach.val() }, function(get_data){
                stop_load();
                $("#sidebar").html(get_data);
      });
});
于 2013-04-12T21:38:32.260 に答える