Yii Framework Forum: gridview ajax selectionChanged 重复提交问题 - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

gridview ajax selectionChanged 重复提交问题 Rate Topic: -----

#1 User is offline   johocn 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 21-January 10

Posted 21 January 2012 - 09:13 AM

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

0

#2 User is offline   johocn 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 21-January 10

Posted 15 December 2012 - 08:24 AM

有朋有能帮助解决吗
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users