我的程序代码如下:我是在一个打开的dialog中显示的
<?php
$ajaxSupplier=CHtml::ajax(array(
'url'=>Yii::app()->createUrl('/Purchorders/AjaxSupplier'),
'type'=>'post',
'dataType'=>'json',
'data'=>'js:"supplierno="+supplierno',
'success'=>'js:function ( data ) {
if( data.error!="" ){
alert( data.error );
return false;
}
$("#Purchorders_suppliercontact").find("option").remove().end().append("<option value=\'\'>'.Yii::t('johocn','None').'</option>").val("");
$("#Purchorders_suppliercontact").append(data.suppliercontact);
$("#Purchorders_suppdeladdress1").val(data.address1);
$("#Purchorders_suppdeladdress2").val(data.address2);
$("#Purchorders_suppdeladdress3").val(data.address3);
$("#Purchorders_suppdeladdress4").val(data.address4);
$("#Purchorders_suppdeladdress5").val(data.address5);
$("#Purchorders_suppdeladdress6").val(data.address6);
$("#Purchorders_rate").val(data.rate);
$("#Purchorders_paymentterms").attr("value",data.paymentterms);
$("#Purchorders_port").val(data.port);
return false;
}',
));
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'suppliers-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array('class'=>'CCheckBoxColumn','name'=>'supplierid','id'=>'select'),
'supplierid',
'suppname',
'address1',
'address2',
'address3',
'address4',
),
'selectionChanged'=>'js:function ( id ) {
$("#Purchorders_suppname").val($("input[name^=\'select\']:checked").val());
$("#Purchorders_supplierno").val($("input[name^=\'select\']:checked").val());
var supplierno=$("input[name^=\'select\']:checked").val();
'.$ajaxSupplier.'
$("#AjaxDialog").dialog("close");
return false;
}',
)); ?>
程序代码运行中出现如下问题:
第一次运行正常。一次是选定的正常值如a
第二次运行时ajax被提交了二次,一次是选定的正常值如a,第二次是空值。
第三次运行时ajax被提交了三次,一次是选定的正常值如a,第二次是空值。三次是选定的正常值如a。
第四次运行时ajax被提交了四次,一次是选定的正常值如a,第二次是空值。三次是选定的正常值如a。第四次是空值。
就这样有规律递增。请问有办法解决吗?
或有其他方法实现上述目的吗?
我的目标是:
1、选定第一列的一个值。用json方法。
2、发送这个值,返回一个json数组。
3、用以更新特定的几表单的内容,及关闭弹出的窗口。
想使用ajaxButton方法,测试结果如下:
1选择的值正确。
2ajax后返回的json正确。
3但是我的success部分代码有问题不能工作,点击后无返应。
缺少以下两步:
一是更新表单值,二是关闭窗口。
请问有朋友能帮助解决吗?
echo CHtml::ajaxButton(Yii::t('Suppliers','Select Suppliers'),array('/Purchorders/AjaxSupplier'),
array(
'data'=>array('supplierno'=>'js:$("input[name^=\'select\']:checked").val()'),
'type'=>'post',
'dataType'=>'json',
'susscess'=>'js:function ( data ) {
if( data.error!="" ){
alert( data.error );
return false;
}
$("#Purchorders_suppliercontact").find("option").remove().end().append("<option value=\'\'>'.Yii::t('johocn','None').'</option>").val("");
$("#Purchorders_suppliercontact").append(data.suppliercontact);
$("#Purchorders_suppdeladdress1").val(data.address1);
$("#Purchorders_suppdeladdress2").val(data.address2);
$("#Purchorders_suppdeladdress3").val(data.address3);
$("#Purchorders_suppdeladdress4").val(data.address4);
$("#Purchorders_suppdeladdress5").val(data.address5);
$("#Purchorders_suppdeladdress6").val(data.address6);
$("#Purchorders_rate").val(data.rate);
$("#Purchorders_paymentterms").attr("value",data.paymentterms);
$("#Purchorders_port").val(data.port);
$("#AjaxDialog").dialog("close");
return false;
}',
)
);