[Tanya] Query dari form input

Para Masta, ane masi nubi bgt… ane mo nanya cara bikin query dari form input di Yii gimana yah??

misalnya dalam query ada condition yg diambil dari inputan user lewat form input, terus nampilin hasilya juga gimana? mohon pencerahannya :D

bikin query di controller??





public function actionCreate()

	{

		$model=new Barang;


		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['Barang']))

		{

			$model->attributes=$_POST['Barang'];//<-- isi data dari form ke model

        	//cara panggilnya $model->nama

			if($model->save())

				$this->redirect(array('view','id'=>$model->id));

		}


		$this->render('create',array(

			'model'=>$model,

		));

	}




makssudnya tampilin gmn y…gii bukanya da bikinin viewnya y?

<maaf kalau salah…saya juga masih belajar :lol: >

Wah, makasih banyak masukanya gan :lol: !! maksud ane nampilinya klo mau make query select (ane uda coba pake CDbCriteria yg ada condition) nya, nah masukin inputan user ama nampiling hasil select setelah diinput condition tsb ane bingung… sori ya gan klo ane banyak nanya :))

biasa ane pake gini gan…emng knp mau pake query?kompleks y querynya??





	$criteria = new CDbCriteria();

		$dataProvider=new CActiveDataProvider('NamaModel',array(

		'criteria'=>array(

			'condition' => 'deleted IS NULL or deleted <>:deleted',

			'params' => array(':deleted'=>1)

			),

			)

			);

		$this->render('index',array(

			'dataProvider'=>$dataProvider,

		));




iya gan, ane mao select data dari tabel barang dengan kondisi harga tertentu yg kondisinya diambil dari inputan user tapi inputan tsb mau ane kalikan dulu ama 0.5, ane uda coba pake CDbCriteria yg ada condition nya, trus masukin inputan user yg uda dikaliin ama nampiling hasil select setelah diinput condition tsb ane bingung :wacko:

binggungnya karena error?apa karena ga keluar datanya?

boleh liat code nya??

ga keluar datanya…




public function actionBarang()

	{

		$model=new BarangForm;

		

		if(isset($_POST['BarangForm']))

		{

			$model->attributes=$_POST['BarangForm'];

			

			

			$budget = $form->elements['budget'];

			$Criteria = new CDbCriteria();

			$Criteria->condition = 'harga > :budget *0.5';

			$Criteria->params = array (':budget' => $budget);

			$Criteria->limit = 3;

			$Criteria->offset = 1;

			$Criteria->select = 'nama, harga';	

				$this->render('index', array(

                        'VgaCards'=>VgaCard::model()->findAll($Criteria),

                            ));

		}

		// display the form

		$this->render('barang',array('model'=>$model));

	}



da perna coba seperti ini???




public function actionBarang()

	{

		$model=new BarangForm;

		

		if(isset($_POST['BarangForm']))

		{

			$model->attributes=$_POST['BarangForm'];

			

			

			$budget = $form->elements['budget'];

			$Criteria = new CDbCriteria();

			$Criteria->condition = 'harga > :budget *0.5';

			$Criteria->params = array (':budget' => $budget);

			$Criteria->limit = 3;

			$Criteria->offset = 1;

			$Criteria->select = 'nama, harga'; 

        	$dataProvider=new CActiveDataProvider('VgaCard',array(

	   	 'criteria'=>$Criteria,

	   	 'pagination'=>array(

	   		 'pageSize'=>30,

	   	 ),

	    ));   

				$this->render('index', array(

                        'dataProvider'=>$dataProvider,

                            ));

		}

		// display the form

		$this->render('barang',array('model'=>$model));

	}



masi ga keluar gan, tampil tabel kosong aja

agan cara nampilinya gmn y??

ni view nya gan,




<?php foreach($dataProvider AS $VgaCard):?>

	

    <tr>

        <td><?php echo $VgaCard->nama;?></td>

        <td><?php echo $VgaCard->harga;?></td>

    </tr>

	

<?php endforeach;?>



salah ya gan??

ga coba pake cgriedview atau cdetailview aja???

?php foreach($dataProvider AS $VgaCard):?>

&lt;tr&gt;


    &lt;td&gt;&lt;?php echo &#036;VgaCard-&gt;nama;?&gt;&lt;/td&gt;


    &lt;td&gt;&lt;?php echo &#036;VgaCard-&gt;harga;?&gt;&lt;/td&gt;


&lt;/tr&gt;

<?php endforeach;?>

ini code ga error??kok saya tes di saya error… :mellow:

ga error ko, cuma datanya aja yg ga keluar… cgridview ane belon pernah make (nubi abiz nih ane :P), ane coba deh klo gitu

kl cgriedview tinggal di pasangin aja datanya dari dataProvier sama set apa aja yg di tampilin…da jadi d… :lol:

selamat mencoba

gan, ane coba pake cgridview dapet error begini "The "dataProvider" property cannot be empty."… cara ngisi propertinya nya gimana ya gan?

view nya:




<?php $this->widget('zii.widgets.grid.CGridView', array(

        'id'=>'dss-grid',

        'dataProvider'=>$dataProvider,

        //filter'=>$model,

        'columns'=>array(

              array(

                'header'=>'Nama',

                'value'=>'$data->nama',

                ),

              array(

                'header'=>'Harga',

                'value'=>'$data->harga',

                ),

				),

				)

				);

				?>



harusnya kalau

$dataProvider=new CActiveDataProvider(‘VgaCard’,array(

             'criteria'=&gt;&#036;Criteria,


             'pagination'=&gt;array(


                     'pageSize'=&gt;30,


             ),

da di isin ma dy propertinya…

iya nigan, ane bingung… apa mesti ditaro di model ya query nya

coba aja <pre> <?php print_r($dataProvider); ?></pre>

kalau di saya panjang banget arraynya…

coba liat kodingan view sama controllernya bole???

kosong juga gan, ni gan kodingnya :

controller




<?php


class DssController extends Controller

{

	public function actionIndex()

	{

		

	}


	/**

	 * Displays the DSS page

	 */

	public function actionDSS()

	{

		$model=new DSSForm;

		/*$form = new CForm('application.views.site.dss', $model);

			if($form->submitted('Submit') && $form->validate())

				$this->render('index', array(

                        'VgaCards'=>VgaCard::model()->findAll($Criteria),

                            ));

			else

				$this->render('login', array('form'=>$form));*/

		// collect user input data

		if(isset($_POST['DSSForm']))

		{

			$model->attributes=$_POST['DSSForm'];

			// validate user input and redirect to the previous page if valid

			if($model->validate() && $model->dss())

			

			$budget = $form->elements['budget'];//akses elemen form, belon tau berhasil apa nga

			$Criteria = new CDbCriteria();

			$Criteria->condition = 'harga > :budget *0.5';

			$Criteria->params = array (':budget' => $budget);

			$Criteria->limit = 3;

			$Criteria->offset = 1;

			//$Criteria->order = 'harga';

			$Criteria->select = 'nama, harga';	

				  $dataProvider=new CActiveDataProvider('VgaCard',array(

                 'criteria'=>$Criteria,

                 'pagination'=>array(

                         'pageSize'=>30,

                 ),

            ));   

                                $this->redirect('index', array(

                        'dataProvider'=>$dataProvider,

                            ));

                }

                // display the form

               $this->render('dss',array('model'=>$model));

        }

}



ni view nya :




<?php

$this->breadcrumbs=array(

	'Dss',

);?>

<h1><?php echo $this->id . '/' . $this->action->id; ?></h1>




<?php $this->widget('zii.widgets.grid.CGridView', array(

        'id'=>'dss-grid',

        'dataProvider'=>$dataProvider,

        //filter'=>$model,

        'columns'=>array('nama','harga',

              array(

                'header'=>'Nama',

                'value'=>'$data->nama',

                ),

              array(

                'header'=>'Harga',

                'value'=>'$data->harga',

                ),

				),

				)

				);

				?>



gimana gan, sori ya kalo berantakan ato banyak salahnya :o

kok if ini ga ada kurung kurawalnya?

if($model->validate() && $model->dss())

cmn tentuin budget y?

coba kl data providernya semua dl d…

$dataProvider=new CActiveDataProvider(‘VgaCard’);

perna coba GII ga??