4

CHtml::ajaxbuttonフォームなしで要素を投稿するために Yiiを使用する方法の例を誰か挙げることができますか?

4

3 に答える 3

7

簡単な例

<?php
echo CHtml::ajaxSubmitButton('ButtonName',Yii::app()->createUrl('advert/LoadAdvertFromSay'),
                    array(
                        'type'=>'POST',
                        'data'=> 'js:{"data1": val1, "data2": val2 }',                        
                        'success'=>'js:function(string){ alert(string); }'           
                    ),array('class'=>'someCssClass',));
?>

ajaxSubmitButton()

data内部にパラメータが必要ですajaxoptions

于 2012-12-12T10:49:04.757 に答える
4

データを渡すには、それを ajax 配列に追加する必要があります。

<?php
echo CHtml::ajaxSubmitButton('ButtonName',Yii::app()->createUrl('advert/LoadAdvertFromSay'),
                    array(
                        'type'=>'POST',
                        'data'=> 'js:$("#dataContainer").serialize()',
                        'success'=>'js:function(string){ alert(string); }'           
                    ),array('class'=>'someCssClass',));
?>

この場合、id を持つ要素内のすべての入力型要素dataContainerが送信され、$_POST 経由でアクセスできます。

明らかに、JS はより複雑になる可能性があります。特定の要素から値を取得し、独自のオブジェクトを作成できます。たとえば、次のようになります。

'data' => 'js:{"field1": $("#input1").val(), "pageTitle": $("title").text() }'

次に、コントローラーで$_POST["field1"]andにアクセスできますが、通常はCHttpRequest::getParam()$_POST["pageTitle"]を介してアイテムにアクセスする傾向があります。これにより、POST または GET 値を取得できます。CHttpRequest::getParam('field1')

于 2012-12-12T23:12:43.600 に答える