Yii Framework Forum: Autocomplete Ile Active Record Yapmak Istiyorum.. - Yii Framework Forum

Jump to content

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

Autocomplete Ile Active Record Yapmak Istiyorum..

#1 User is offline   alren 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 11-November 13

Posted 11 November 2013 - 06:28 AM

[view] menu.php

<div class="row">
		<?php  echo $form->labelEx($model,'yemek1'); ?>
		<?php 
				$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
					'model'=>$model->yemek1,
				    'name'=>'Menu[yemek1]',
				    'source'=>$this->createUrl('kayit/autocompleteTest'),
				    'id'=>'id',
				    'options'=>array(
				        'delay'=>300,
				        'minLength'=>1,
				        'showAnim'=>'fold',
				        'focus'=>'js:function( event, ui ) {
          						$( "#Menu_yemek1" ).val( ui.item.label );
   								return false;
  							}',
				   		'select'=>"js:function(event, ui) {
				            	$('#Menu_yemek1').val(ui.item.label);
				            	$('#kalori1').val(ui.item.kalori);
				            	return false;
				        	}",
				     ),
				    'htmlOptions'=>array(
				        'size'=>'40'
				    ),
				));

				?>
		
		<?php  echo $form->error($model,'yemek1'); 	?>
	</div>
        <div class="row">
                <?php  echo CHtml::textField('kalori1','',array('id'=>'kalori1','disabled' => true)); ?>
	</div>


[controller] KayitController.php

public function actionAutocompleteTest1() {
	$res =array();

	if (isset($_GET['term'])) {
		$sql = 'SELECT kalori as value, yemekAdi as label FROM yemekler ';
		$sql = $sql . ' WHERE  niteligi=2 and yemekAdi LIKE :label'; // Must be at least 1
		$command =Yii::app()->db->createCommand($sql);
		$command->bindValue(":label", '%'.$_GET['term'].'%', PDO::PARAM_STR);
		echo json_encode ( $command->queryAll () );

 	}
}



yemekler tablomda
id yemekAdi niteligi ve kalori alanları mevcut.

istediğim şey autocomplete ile yemek adını seçtiğimde alttaki alana kalorisini yazması ve veritabanına id si ile kaydetmesi.

Bun kodlarla yemek seçimini ve kalori atamasını yapıyorum fakat kaydet butonuna bastığımda alanın sayı olması gerektiği uyarısını alıyorum. Yani yemeğin id si yerine yemekAdi değerini kaydetmeye çalışıyor.

$sql = 'SELECT kalori as kalori, yemekAdi as label, id as value FROM yemekler ';
şeklinde değiştirip denedim ama olmadı

Nasıl bir ekleme yapmam lazım?
0

#2 User is offline   McQueen 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 141
  • Joined: 13-August 11
  • Location:Istanbul/Turkey

Posted 11 November 2013 - 07:03 AM

çalış yaparsın :) ::) :blink: :D B) :P >:D
0

#3 User is offline   McQueen 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 141
  • Joined: 13-August 11
  • Location:Istanbul/Turkey

Posted 11 November 2013 - 09:09 AM

Sevap işlemeyi seven bir arkadaşımız şu caresize bi yardım ederse çok büyük hayır işler...

öksüz bu... büyük sevap kazanır :)
0

#4 User is offline   McQueen 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 141
  • Joined: 13-August 11
  • Location:Istanbul/Turkey

Posted 11 November 2013 - 09:16 AM

View Postalren, on 11 November 2013 - 06:28 AM, said:

[view] menu.php

<div class="row">
		<?php  echo $form->labelEx($model,'yemek1'); ?>
		<?php 
				$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
					'model'=>$model->yemek1,
				    'name'=>'Menu[yemek1]',
				    'source'=>$this->createUrl('kayit/autocompleteTest'),
				    'id'=>'id',
				    'options'=>array(
				        'delay'=>300,
				        'minLength'=>1,
				        'showAnim'=>'fold',
				        'focus'=>'js:function( event, ui ) {
          						$( "#Menu_yemek1" ).val( ui.item.label );
   								return false;
  							}',
				   		'select'=>"js:function(event, ui) {
				            	$('#Menu_yemek1').val(ui.item.label);
				            	$('#kalori1').val(ui.item.kalori);
				            	return false;
				        	}",
				     ),
				    'htmlOptions'=>array(
				        'size'=>'40'
				    ),
				));

				?>
		
		<?php  echo $form->error($model,'yemek1'); 	?>
	</div>
        <div class="row">
                <?php  echo CHtml::textField('kalori1','',array('id'=>'kalori1','disabled' => true)); ?>
	</div>


[controller] KayitController.php

public function actionAutocompleteTest1() {
	$res =array();

	if (isset($_GET['term'])) {
		$sql = 'SELECT kalori as value, yemekAdi as label FROM yemekler ';
		$sql = $sql . ' WHERE  niteligi=2 and yemekAdi LIKE :label'; // Must be at least 1
		$command =Yii::app()->db->createCommand($sql);
		$command->bindValue(":label", '%'.$_GET['term'].'%', PDO::PARAM_STR);
		echo json_encode ( $command->queryAll () );

 	}
}



yemekler tablomda
id yemekAdi niteligi ve kalori alanları mevcut.

istediğim şey autocomplete ile yemek adını seçtiğimde alttaki alana kalorisini yazması ve veritabanına id si ile kaydetmesi.

Bun kodlarla yemek seçimini ve kalori atamasını yapıyorum fakat kaydet butonuna bastığımda alanın sayı olması gerektiği uyarısını alıyorum. Yani yemeğin id si yerine yemekAdi değerini kaydetmeye çalışıyor.

$sql = 'SELECT kalori as kalori, yemekAdi as label, id as value FROM yemekler ';
şeklinde değiştirip denedim ama olmadı

Nasıl bir ekleme yapmam lazım?


Kıyamam arkadaşıma :)

selectte id yi de çek, onuda gönder, onun için ayrı bir textfield yap. o text fielda autocomplete scripttinde id değerini gönder... formu post yaptığında textfield ile gönderdiğin id yi al db ye yaz...
0

#5 User is offline   ekayserili 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 13-November 13

Posted 13 November 2013 - 02:05 PM

'name'=>'Menu[yemek1]' bunun veritabanindaki degeri int ise bunun ismini degistir. bir tane hidden olustur ve ismini 'name'=>'Menu[yemek1]' bu sekilde ver. gelen id degerinide buna yukle.
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