Php ajaxSubmitButton始终在POST方法中提交数据

Php ajaxSubmitButton始终在POST方法中提交数据,php,ajax,yii,yii-chtml,Php,Ajax,Yii,Yii Chtml,我在使用CHtml::ajaxSubmitButton作为GET方法提交一些数据时遇到了这个问题。无论我尝试什么,它总是以POST方法提交数据 我可能做错了什么?这是我的密码 echo CHtml::beginForm(array('shoppingCart/addItem','GET')); echo CHtml::textField('qty', 1, array('size' => 3)); echo CHtml::hiddenField('product_id', $model-

我在使用CHtml::ajaxSubmitButton作为GET方法提交一些数据时遇到了这个问题。无论我尝试什么,它总是以POST方法提交数据

我可能做错了什么?这是我的密码

echo CHtml::beginForm(array('shoppingCart/addItem','GET')); 
echo CHtml::textField('qty', 1, array('size' => 3));
echo CHtml::hiddenField('product_id', $model->product_id); echo CHtml::ajaxSubmitButton('submit',          
                array('shoppingCart/addItem'), 
                array(
                        'type'=>'GET',
                        //'data' => array()),
                ));

echo CHtml::endForm();
关于
类型的值,将覆盖

public static function ajaxSubmitButton($label,$url,$ajaxOptions=array(),$htmlOptions=array())
{
    $ajaxOptions['type']='POST';
    $htmlOptions['type']='submit';
    return self::ajaxButton($label,$url,$ajaxOptions,$htmlOptions);
}

因此,只要不触及核心功能,就无法使用GET。

这是出于设计。您可以改用
CHtml::ajaxButton

CHtml::ajaxButton('My Label','controller/action',array(
            'type'=>'GET',
        ), array(
            'type'=>'submit',
        );

这没什么区别,只是说,ajax是用POST发送的。可能只有在使用非ajax解决方案时,GET才可能实现。您可以看到这一行
$ajaxOptions['type']='POST'
使ajaxSubmitButton无法使用
GET
。我会更新我的答案。这是解决问题的方法:)非常感谢