0

データ リストに検索モジュールを追加しようとしています。

リクエストを投稿した私の関数は、ビューをレンダリングします。

検索ボタンを押した後にリスト グリッドを読み込むにはどうすればよいですか?

コードを作成echoするhtmlか、ビューをレンダリングしてそのビューをその位置に書き込む必要がありますか?

私は完全に混乱しています...

public function actionSell() {
    $cond="";
    if($_POST) {
        foreach ($_POST as $key => $value) {
            $_POST[$key] = str_replace(',', '', stripslashes(mysql_real_escape_string($value)));
        }
        $melk_id = $_POST['melk_id'];
        $city_id = $_POST['city_id'];
        $cost_from = $_POST['cost_from'];
        $cost_to = $_POST['cost_to'];
        $metraj_from = $_POST['metraj_from'];
        $metraj_to = $_POST['metraj_to'];
        if($melk_id) $cond .= ' and melk_id='.$melk_id; 
        if($city_id) $cond .= ' and city_id='.$city_id;
        if($cost_from) $cond .= ' and cost >='.$cost_from;
        if($cost_to) $cond .= ' and cost <='.$cost_to;
        if($metraj_from) $cond .= ' and metraj >='.$metraj_from;
        if($metraj_to) $cond .= ' and metraj <='.$metraj_to;
    }
    $dataProvider = new CActiveDataProvider('Data', array('criteria' => array(
            'condition' => 'type = 0 '.$cond,
            'order' => 'id DESC',
        ),
        'pagination' => array('pageSize' => 15)
    ));
    $this->render('sell', array(
        'dataProvider' => $dataProvider,
    ));
}
4

2 に答える 2

3

私はphp開発者ではありませんが、jQueryの方法で答えてみます。

  1. リスト グリッドをコンテナーに保持するとします。 <div id="container"> //the grid </div>

  2. グリッドView を保持するからコンテナを埋めます

  3. 検索テキストボックスがあります
    <input id="searchBox" type="text" name="SeachTxt" Value="Some text"/>

    そしてボタン: <input id="SearchBtn" type="button" value="Search Now!">

  4. 次に、次のような jQuery ajax post 関数が必要です。

    jQuery("#SearchBtn").click(function(e) {
    e.preventDefault();
    jQuery.ajax({
        url: 'index.php?searchString=' + jQuery("#searchBox").val(),
        success: function(result) {
            jQuery("#container").html(result);
        }
    });
    

    });

于 2013-08-11T07:59:20.557 に答える
2

renderPartialのように使用できます

$this->renderPartial('_ajaxContent', array(
                        'dataProvider' => $dataProvider
                    ), false, true
);
于 2013-08-11T07:52:28.170 に答える