[英]reload just a part of a page after ajax request
我正在尝试为我的数据列表添加搜索模块。
我将请求发布到的函数呈现了一个视图。
按下搜索按钮后如何加载列表网格?
我应该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,
));
}
我不是PHP开发人员,但我将以jQuery的方式尝试回答。
假设您将列表网格保存在容器中: <div id="container"> //the grid </div>
您从包含网格的View
填充容器
你有Seach TextBox
<input id="searchBox" type="text" name="SeachTxt" Value="Some text"/>
和一个按钮: <input id="SearchBtn" type="button" value="Search Now!">
接下来,您必须具有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); } });
});
您可以使用renderPartial
,例如
$this->renderPartial('_ajaxContent', array(
'dataProvider' => $dataProvider
), false, true
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.