シンプルなAJAX検索フォーム

ですから、私はCraftで検索フォームを作成する方法については、ドキュメントに従っています。それはうまく動作します。しかし、results.twigページを持つ代わりに、私はただ1つのインデックスページを持って、AJAXですべての結果を得たいと思っています。
Craftでこれを達成する簡単な方法はありますか?もしそうなら、誰かが例を持っていますか?

ベストアンサー

あなたは独自の検索を作成することができます… これはあなたのhtmlです

<input type="input" id="searchTags" placeholder="Search">
<input type="button" id="startSearch" value="Go">
<div id="results"></div>

あなたは次のスクリプトを持っています:

$("#startSearch").click(function(){
    var data = {
        action: 'pluginhandle/controller/searchEntries',
        options: $("#searchTags").val()
    };
    $.ajax({
       type: "post",
       url: '/',
       data: data,
       success: function(response){
      //replace content from $("#results") with your new html
       },
    ....
   });
});

あなたのコントローラーは次のようになります

public function actionSearchEntry(){ 
     $criteria = new ElementCriteriaModel(ElementType::Entry);     
    //build your criteriaModel based on your needs
     $html = $this->renderTemplate('results.twig', array(
         'entries' => $criteria->find()
     ));
     return $this->returnJson($html);
}

results.twigは次のようになります

{% if entries is defined and entries|length %}
    
    {% for entry in entries %}

  • {{ entry.title }}
  • {% endfor %}

{% endif %}

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です