2016-04-04 5 views
1

にajaxlivesearch.com機能にいくつかのアドバイスを使用することができます。結果をクリックすると、クエリを送信して結果ページを表示したいと思います。私がajaxlivesearch機能を追加する前に、キーワードを入力して入力を押してから、結果ページが表示されましたが、これはクエリで発生します。しかし、私がajaxlivesearch機能を含めた後、Enterを押すことはもはやオプションではなく、何も起こりませんでした。は、私は私が何も起こりません結果をクリックしたときに問題がある、私はajaxlivesearch.com</p> <p>からlivesearch.com機能に含まれている検索バーを持っているjqueryの

問題はこれらのjQueryの行の中にあると思います。

jQuery(".mySearch").ajaxlivesearch({ 
    loaded_at: <?php echo $time; ?>, 
    token: <?php echo "'" . $token . "'"; ?>, 
    maxInput: <?php echo $maxInputLength; ?>, 
    onResultClick: function(e, data) { 
     // get the index 1 (second column) value 
     var selectedOne = jQuery(data.selected).find('td').eq('1').text(); 

     // set the input value 
     jQuery('.mySearch').val(selectedOne); 

     // hide the result 
     jQuery(".mySearch").trigger('ajaxlivesearch:hide_result'); 
    }, 
    onResultEnter: function(e, data) { 
     // do whatever you want 
     // jQuery(".mySearch").trigger('ajaxlivesearch:search', {query: 'test'}); 
    }, 
    onAjaxComplete: function(e, data) { 
     // do whatever you want 
    } 
}); 

私は誰かが

乾杯を私を助けることを願って!

答えて

0

あなたが何かをする前に、ajaxlivesearch.jsファイルに移動し、このコード行を見つける - >

// disable the form submit on pressing enter 
     form.submit(function() { 
      return false; 
     }); 

Enterキーを押すと、基本的にの反対の一種である、起こって何もフォームを無効ですあなたがしようとしていること。だから明らかにそれを変更する必要があります。

$("#search_ls_query").submit(function(){ 
      return true; 
     }); 

さて、(これは完全に不可欠な追加はありませんが、それにもかかわらず、あなたのインデックスページに追加「onResultEnter」エリアにフォームを送信します。例。

jQuery(document).ready(function(){ 
jQuery(".mySearch").ajaxlivesearch({ 
    loaded_at: <?php echo $time; ?>, 
    token: <?php echo "'" . $token . "'"; ?>, 
    maxInput: <?php echo $maxInputLength; ?>, 
    onResultClick: function(e, data) { 
     // get the index 0 (1st column) value 
     var selectedOne = jQuery(data.selected).find('td').eq('0').text(); 

     // set the input value 
     jQuery('.mySearch').val(selectedOne); 

     // hide the result 
     jQuery(".mySearch").trigger('ajaxlivesearch:hide_result'); 
    }, 

    onResultEnter: function(e, data) { 
     $("#search_ls_query").submit(); 

    }, 
    /* #search_ls_query is the id of the default form that is submitted when you press enter (Find in ajaxlivesearch.js)*/ 

    onAjaxComplete: function(e, data) { 
    } 
}); 

})

は今ajaxlivesearch.jsファイルに移動し、この発見:

var wrapper = '<div class="' + ls.container_class + '">' + 
       '<form accept-charset="UTF-8" class="' + ls.form_class + '" id="' + ls.form_class + '_' + elem_id + '" name="ls_form">' + 
       '</form>' + 
       '</div>'; 

をそして、このフォームにアクションを追加しますこれは、検索バーでEnterキーを押したときにアクティブになっているものです。それは実際に値を送信する先を持っている

var wrapper = '<div class="' + ls.container_class + '">' + 
       '<form accept-charset="UTF-8" action="search.php" class="' + ls.form_class + '" id="' + ls.form_class + '_' + elem_id + '" name="ls_form">' + 
       '</form>' + 
       '</div>'; 

この方法:だから、これ作ります。したがって、送信される値の名前は "ls_query"なので、バーに入力したものは "ls_query"の値に挿入されます。したがって、Enterキーを押して新しいページに到達すると、この変数を使用して検索オプションや必要なものを絞り込むことができます。たとえば、検索ページで次のように書くことができます。

$ls_query = secure($_GET['ls_query'],$mysqli);  

    $sql = "SELECT * 
    FROM users 
    WHERE username ='$ls_query'"; 

これは私にも分かります。しかし、あなたがまだ答えを探しているなら、これは私のために働いた。どうしたらいいのか教えてください!

関連する問題