2011-01-04 8 views
0

私のレールアプリでは、ユーザーが他のユーザーを検索できる検索バーがあります。現在ユーザーが検索結果を送信すると、結果ページにリダイレクトされます。私は同じページのdivにこれらの結果をロードしたいと思います。私は自分のウェブサイトのナビゲーションリンクでこれを行うことができましたが、私はjQueryとレールを使い慣れていないので、これを理解することはできません...検索結果をdiv jquery and railsにロード

私のjQueryの私のナビゲーションリンクに対応:

$(function() { 
    $('#links a').live('click', function() { 
     $('#pages').load(this.href).fadeIn('slow'); 
     return false; 
    }); 
}); 

私の検索機能と同じことを行うには私の試み...

$(function() { 
    $("input#search").parents("form").submit(function() { 
    $('#pages').slideUp('slow').load(this.href).slideDown('slow'); 
    return false; 
    }); 
}); 

すべてのヘルプは非常にいくつかの有用なjQueryのチュートリアルと一緒に〜いただければ幸いです初心者のために!

私形式:

<div id="search_bar"> 
    <form action="/search" method="get"> 
    <input class="tb10" id="search" name="search" onclick="this.select();" type="text" value="Find Users" /> 
    </form> 
</div> 

答えて

1

また、検索機能でreturn false;を試してみてください。 falseを返すと、デフォルトのイベントが要素でトリガーされるのがキャンセルされます。

+0

してみてください:Railsのためのhttp://api.jquery.com/category/plugins/templates/ 口ひげ:

このアプローチは、それが簡単にあなたの代わりにdiv要素に

jQueryのテンプレートをWebページをポンピングしようとしているのHTMLを生成するために作るだろうアラート( 'テスト')を吐き出すために、jQueryが自分のフォームIDを見つけられないようです。私のレールアプリでは、私はform_tagを:id => "search"と指定します。フォーム(実際にはテキストフィールド)には送信ボタンがありません。 – thedeepfield

+0

'#search'が' 'タグを識別して 'submit()'が動作しない場合は、 'click()'にバインドする必要があります。 'submit()'は、私が知る限り、 '

'タグに対してのみ機能します。 – sbeam

+0

sbeamが正しいです。フォームのIDを変更するか、または$( "input#search")を使用して検索フォームを送信したい場合は、parent( "form")を使用します。 –

0

あなたの最初の例では、あなたのリンクを取得する場所を知るためのhref要素を持つアンカーにイベントをバインドします。

あなたのリンクに適したものをコピーして貼り付けたようです。フォームが処理されている場所(フォームの動作)と、フォームデータとして渡されているものを知る必要があります。 jqueryの中で次のようにこれが行われます。私はRoRのに非常に精通していないよ

$(function(){ 
    $("#search").submit(function(){ 
     var queryString = $(this).serialize(); //gets the values in your form 
     var url = $(this).attr("action"); //your action url 
     $("#pages").load(url+"?"+queryString).fadeIn('slow'); 
     return false; //this prevents your form from doing its default behavior. 
    }); 
}); 

(私は#searchを仮定していることはあなたの検索フォームのIDである)が、jqueryのは固体でなければなりません:)

希望に役立ちます!

+0

あなたの応答に感謝、ええそれはコピーと貼り付けでした。私はレールがすべての背景のものをやると思って、レールがdivに吐き出されるようにHTMLをリダイレクトすることができます。 – thedeepfield

0

現時点ではRoRの例はありませんが、その答えはJQueryに関するものだと思います。

基本的には、検索結果を取得し、その結果をjquery TemplatesやMustacheのようなテンプレートシステムで表示するためのajaxリクエストがあります。 、私はちょうどテストをしたhttps://github.com/adamsalter/mustache-rails

+0

hmm okありがとうございました。 – thedeepfield

関連する問題