如何在使用GET提交到Yii中的相同操作时清除URL参数

时间:2013-11-27 14:09:59

标签: html forms yii

我有一个带有搜索表单的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中显示新的参数。任何人都可以建议吗?

2 个答案:

答案 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')
));