0

私はcakePHP1.3を使用しており、検索ビューからコントローラーの検索アクションまでAJAXを使用したいと考えています。私はプロトタイプとscriptaculousを使用していて、正常に機能していましたが、純粋にjQueryを使用する必要があります。

検索アクションは基本的に次のようになります。

    public function search() {
    if (empty($this->data)) {
    } else {
        $request = $this->data;
        $this->set('data', $this->Event->search($request['Event']['search']));
    }  
}

ビューは現在次のようになります。

<script type="text/javascript">

$(function() {

    $(".search_button").click(function() {
        var searchString    = $("#search_box").val();
        var data = searchString;

        if(searchString) {

            $.ajax({
                type: "POST",
                url: "/events/search",
                data: data,
                beforeSend: function(html) { // this happens before actual call
                    $("#results").html('');
                    $("#searchresults").show();
                    $(".word").html(searchString);
                },
                success: function(html){ // this happens after we get results
                    $("#results").show();
                    $("#results").append(html);
                }
            });    
        }
        return false;
    });
});
</script>

<div id='container'>
<h1>Corporate Events</h1> 

<form method="post" action="search">
    <input type="text" name="search" id="search_box" class='search_box'/>
    <input type="submit" value="Search" class="search_button" /><br />
</form>
<div id="searchresults">Search results :</div>
<ul id="results" class="update">

'data'変数をコントローラーの$this->dataで使用できるようにする最良の方法は何ですか?同様の質問で他のスレッドをチェックしましたが、これを行う方法がわかりませんでした。

ありがとう!

4

1 に答える 1

0

POST(http://api.jquery.com/jQuery.post/を参照)またはurl_encode(google "javascript url encode")文字列として送信し、URLに追加します。どちらが優れているかはわかりません。どちらも機能し、実装が簡単なはずです。

于 2012-10-31T22:48:07.200 に答える