gridview ajax selectionChanged 重复提交问题

我的程序代码如下:我是在一个打开的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;

		}',

	)

);

 

有朋有能帮助解决吗