2013-01-07 73 views
4

有沒有辦法有CHtml::button發送POST請求警予了CHtml ::按鈕和POST請求控制器

<?php echo CHtml::button('Button Text', array('submit' => array('controller/action'))); ?> 

我期待複製CHtml::link功能和POST到控制器,控制器

<?php echo CHtml::link('Delete',"#", array("submit"=>array('delete', 'id'=>$data->ID), 'confirm' => 'Are you sure?')); ?> 

編輯:

按鈕不提交一個表單

+0

http://www.yiiframework.com/doc/api/1.1/CHtml/#submitButton-detail – adamors

+0

這不是表單提交,所以沒有父表單數據... – keeg

回答

11

試試這個:

echo CHtml::button('Delete', 
    array(
     'submit'=>array('controllername/actionname',array('id'=>$id)), 
     'confirm' => 'Are you sure?' 
     // or you can use 'params'=>array('id'=>$id) 
    ) 
); 

正如你會看到button也需要特殊htmlOptions屬性clientChange

更新澄清的submit,從doc link():

提交:字符串,指定URL提交。如果當前元素具有父表單,則將提交該表單,並且如果「submit」非空,則其值將替換表單的URL。 如果沒有父表單,'params'中列出的數據將被提交(通過POST方法),'submit'提交到URL或當前請求的URL,如果'submit'是空的。請注意,如果'csrf'設置爲true,那麼CSRF令牌也將包含在參數中。

重點煤礦

至於你提到你想打的刪除操作,默認GII產生actionDelete預計在URL中id,因此我傳入的id的URL,即submit選項。

+0

我沒有嘗試提交表單,只是試圖通過POST方法點擊刪除操作。那可能嗎? – keeg

+0

是的,絕對,鍵入更新來回答,請參閱2分鐘。編輯:代碼仍然是相同的,你使用默認的刪除動作 –

+0

完美。謝謝! – keeg