我有一个带有搜索表单的html页面,其中包含一个文本字段。我们输入值并点击搜索。搜索结果如下所示。这是使用POST方法正常工作。
但我想使用GET,因为我需要在url中显示字段参数(用于为搜索结果添加书签)。
当我尝试使用GET时,每次提交表单时,新字段params都会添加到上一个URL。它也影响了搜索结果。
例如:我第一次用keyword ='car'搜索。网址是这样的:
/index.php/deal/getDeals?Deal%5Bkeyword%5D=car&yt0=Search
然后当我用keyword =“bike”搜索并且网址是:
/index.php/deal/getDeals?Deal%5Bkeyword%5D=car&yt0=Search&Deal%5Bkeyword%5D=bike&yt0=Search
我认为这是因为我正在提交同样的行动。我需要一种方法来清除1stURL参数并在URL中显示新的参数。任何人都可以建议吗?
答案 0 :(得分:1)
这可能是因为表单没有设置任何默认操作,即调用您当前正在查看的同一页面。
这样,第一次,URL就是
/index.php/deal/getDeals
并且工作正常,但是,第二次,URL是
/index.php/deal/getDeals?Deal%5Bkeyword%5D=car&yt0=Search
它在页面之后添加了表单元素
你可以通过调用来解决这个问题(我不确定你是使用普通形式还是活动形式,但这是一般的想法)
echo CHtml::beginForm(array('getDeals'), 'GET');
通过这样做,URL将始终相同,没有任何搜索参数
答案 1 :(得分:1)
您需要设置表单属性action
$form = $this->beginWidget('CActiveForm', array(
'method' => 'get',
'action' => array('controller/action')
));