Formdan Dropdownlist Verilerini Post Edip Veritabanına Kayderderken Karşılaştığım Hata

Merhabalar üye formunu controllere post ederken bütün veriler tamam ama dropdownlistte hata alıyorum bir konuda da yardıma ihtiyacım var.

Öncelikle yardıma ihtiyacım olan şeyi söyleyim: Tarihleri Türkçe( gün/ay/yıl) seçmek ve mysql’in anlayacağı şekle dönderip veritabanına kaydetmem ve tekrar veritabanından çekerken ise Tarihi Türkçe(gün/ay/yıl) listelemek

Aldığım hataya gelince dropdownlistlerle il ve ilçeyi ajax yardımıyla seçtiriyorum. Sonra veritabanına kaydetmek için post ediyorum. Bütün verileri alıyorum ama bir türlü sağlıklı bir şekilde dropdownlistteki value değerlerini alamıyorum. örneğin birinci il isimlerinin bulunduğu Dropdownlist’in ismi “Iller[ad]” şeklinde görünüyor bende


 $uyeler->nufus_ili = $_POST['Iller[ilID]'];

şeklinde kullandığımda hata alıyorum. Bu konuda yardımcı olursanız sevinirim.


controller dosyam


<?php


class UyeController extends Controller

{

	public function actionArama()

	{

               $sonuc = Uyeler::model()->findAll();

		 $this->render('arama', array('sonuc'=> $sonuc));




	}


	public function actionEkle()

	{







        $uyeler = new Uyeler ; // uyeler modelimizi dahil ettik

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

        {

            // isset ile formdan gelen verileri kontrol ediyoruz

            $uyeler->uye_id = $_POST['uye_id'];

            $uyeler->adi = $_POST['adi'];

            $uyeler->soyadi = $_POST['soyadi'];

            $uyeler->dogum_yeri = $_POST['dogum_yeri'];

            $uyeler->dogum_tarihi = $_POST['dogum_tarihi'];

            $uyeler->nufus_ili = $_POST['Iller[ilID]'];

            $uyeler->nufus_ilcesi = $_POST['Ilceler'];

            $uyeler->anne_adi = $_POST['anne_adi'];

            $uyeler->baba_adi = $_POST['baba_adi'];

            $uyeler->tel = $_POST['tel'];

            $uyeler->kan_grubu = $_POST['kan_grubu'];

            $uyeler->cinsiyet = $_POST['cinsiyet'];

            $uyeler->adres = $_POST['adres'];

            $uyeler->adres_ili = $_POST['Iller'];

            $uyeler->adres_ilcesi = $_POST['adresIlceler'];

            $uyeler->uye_gorevi = $_POST['uye_gorevi'];

            $uyeler->uye_kayit_tarihi = $_POST['uye_kayit_tarihi'];

            $uyeler->uye_durumu = $_POST['uye_durumu'];

            if($uyeler-> save(false))

            {


                echo "Veriler başrıyla tamamlandı";

            }


            else

            {

                echo "hata oluştu";


            }


        }


        else


        {


            $iller = new Iller();

            $this->render('ekle', array('iller'=>$iller));


        }


	}




    public function actionIlcesec()

    {

        $data = Ilceler::model()->findAll('ilID=:ilID',

            array(':ilID'=>$_POST['ilID']));

        $data= CHtml::listData($data,'ilceID','ad');


        echo "<option value=''>İlçe Seçiniz</option>";

        foreach($data as $value=>$name)

            echo CHtml::tag('option', array('value'=>$value),CHtml::encode($name),true);

    }


	public function actionGuncelle()

	{

		$this->render('guncelle');

	}


	public function actionIndex()

	{

		$this->render('index');

	}


	// Uncomment the following methods and override them if needed

	/*

	public function filters()

	{

		// return the filter configuration for this controller, e.g.:

		return array(

			'inlineFilterName',

			array(

				'class'=>'path.to.FilterClass',

				'propertyName'=>'propertyValue',

			),

		);

	}


	public function actions()

	{

		// return external action classes, e.g.:

		return array(

			'action1'=>'path.to.ActionClass',

			'action2'=>array(

				'class'=>'path.to.AnotherActionClass',

				'propertyName'=>'propertyValue',

			),

		);

	}

	*/

}


view dosyası


<?php

/* @var $this UyelerController */

/* @var $model Uyeler */


?>


<?php

echo "<div style='width:120px; float: left'>";

$chtml=new CHtml;

echo $chtml::beginForm(array('uye/ekle'),'post');

echo "Üye No:";

echo "<br/>";

echo $chtml::textField('uye_id');

echo "<br/>";

echo "Adı:";echo "<br/>";

echo $chtml::textField ('adi');

echo "<br/>";

echo "Soyadı:";

echo "<br/>";

echo $chtml::textField ('soyadi');

echo "<br/>";

echo "Doğum Yeri";

echo "<br/>";

echo $chtml::textField ('dogum_yeri');

echo "<br/>";

echo "Doğum Tarihi:";

echo "<br/>";

// tarih seçmek için

$this->widget('zii.widgets.jui.CJuiDatePicker',array(

    'name'=>'dogum_tarihi',

    // additional javascript options for the date picker plugin

    'options'=>array(

        'showAnim'=>'fold',

        'language' => 'tr',

        'dateFormat' => 'yy-mm-dd', //save to db format

        'altFormat' => 'dd/mm/yy', // show to user format

    ),

    'htmlOptions'=>array(

        'style'=>'height:20px;'

    ),

));

echo "<br/>";

echo "Nüfusa Bağlı Olduğu İl:";

echo "<br/>";


echo $chtml::activeDropDownList($iller,'ad',CHtml::listData(Iller::model()->findAll(

        array('order' => 'ilID')),'ilID','ad'),

    array(

        'prompt'=>'İl Seçiniz',

        'ajax'=>array(

            'type'=>'POST',

            'url' => CController::createUrl('Ilcesec'),

            'data'=> array('ilID'=>'js:this.value'),

            'update'=>'#Ilceler',))

);


// İlçelerin listesini dropdownlistte gösteriyor.

echo "<br/>";

echo "Nüfusa Bağlı Olduğu İlçe:";

echo "<br/>";

echo $chtml::dropDownList('Ilceler','', array(),

    array('prompt'=>'ilce seciniz')); // İlçelerin listesini dropdownlistte gösteriyor.

echo "<br/>";

echo "Anne Adı:";

echo "<br/>";

echo $chtml::textField ('anne_adi');

echo "<br/>";

echo "Baba Adı:";

echo "<br/>";

echo $chtml::textField ('baba_adi');

echo "<br/>";

echo "</div>";

echo "<div style='width:150px; margin-left: 100px; float: left'>";

echo "Telefon";

echo "<br/>";

echo $chtml::textField ('tel');

echo "<br/>";

echo "Kan Grubu";

echo "<br/>";

echo $chtml::DropDownList('kan_grubu','',array('0'=>'A Rh (+)','1'=>'A Rh (-)','2'=>'B Rh (+)','3'=>'B Rh (-)','4'=>'AB Rh (+)','5'=>'AB Rh (-)','6'=>'0 Rh (+)','7'=>'0 Rh (-)'),array('empty' =>('Kan Grubu Seçiniz') )); // Kan Grubu listesini dropdownlistte gösteriyor.

echo "<br/>";

echo "Cinsiyet:";

echo "<br/>";

echo $chtml::DropDownList('cinsiyet','',array('0'=>'Erkek','1'=>'Bayan'),array('empty' =>('Cinsiyet Seçiniz') )); // Cinsiyet listesini dropdownlistte gösteriyor.

echo "<br/>";

echo "Adres:";

echo "<br/>";

echo $chtml::textArea('adres');

echo "<br/>";

echo "Adres İli";

echo "<br/>";

// adres iline ait dropdownlist

echo $chtml::activeDropDownList($iller,'ilID',CHtml::listData(Iller::model()->findAll(

        array('order' => 'ilID')),'ilID','ad'),

    array(

        'prompt'=>'İl Seçiniz',

        'ajax'=>array(

            'type'=>'POST',

            'url' => CController::createUrl('Ilcesec'),

            'data'=> array('ilID'=>'js:this.value'),

            'update'=>'#adresIlceler',))

);

echo "<br/>";

echo "Adres İlçesi:";

echo "<br/>";

echo $chtml::dropDownList('adresIlceler','', array(),

array('prompt'=>'ilce seciniz')); // Adres İlçelerin listesini dropdownlistte gösteriyor.

echo "<br/>";

echo "Üye Görevi:";

echo "<br/>";

echo $chtml::DropDownList('uye_gorevi','',array('0'=>'Üye','1'=>'Başkan','2'=>'Başkan Yardımcısı','3'=>'Muhasip','4'=>'Sekreter','5'=>'Yedek Üye'),array('empty' =>('Üyelik Türü Seçiniz') )); // Üye görevi gösteriyor.

echo "<br/>";

echo "Üyelik Tarihi:";

echo "<br/>";

// tarih seçmek için

$this->widget('zii.widgets.jui.CJuiDatePicker',array(

    'name'=>'uye_kayit_tarihi',

    // additional javascript options for the date picker plugin

    'options'=>array(

        'showAnim'=>'fold',

        'language' => 'tr',

        'dateFormat' => 'yy-mm-dd',

        'altFormat' => 'dd/mm/yy', // show to user format


    ),

    'htmlOptions'=>array(

        'style'=>'height:20px;'

    ),




));

echo "<br/>";

echo "Üyelik Durumu:";

echo "<br/>";

echo $chtml::DropDownList('uye_durumu','',array('0'=>'Aktif','1'=>'Pasif'),array('empty' =>('Üyelik Durumu Seçiniz') )); // Üyelik durumu dropdownlistte gösteriyor.

echo "<br/>";

echo $chtml::submitButton('Üye Ekle',array('name'=>'ekle'));

echo $chtml::resetButton('İptal',array('name'=>'iptal'));

echo "</div>";

echo "<div style='width: 500px; height: 400px; float: right; background-color: #C9E0ED;'>";

echo "denme";

echo "</div>";


?>



Merhaba @Nahit,


$_POST['Iller[ilID]'];

yerine


$_POST['Iller']['ilID'];

şeklinde kullanabilirmisiniz,

bir de verilerinizi post ettikten sonra controller da


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

{

kodunuzdan hemen sonra post edilen verilerin dump ını




echo '<pre>';

var_dump($_POST); 

exit;



kodu ekleyip sonucu yazabilirmisiniz.

Yahya Sönmez ilginden dolaSonyı çok teşekkür ederim. Foruma katkın çok var_dump çıktısı şu şekilde


 array (size=18)

  'uye_id' => string '74050063900' (length=11)

  'adi' => string 'Hasan' (length=5)

  'soyadi' => string 'Eryaman' (length=7)

  'dogum_yeri' => string 'Fatsa' (length=5)

  'dogum_tarihi' => string '1987-01-01' (length=10)

  'Iller' => 

    array (size=2)

      'ad' => string '64' (length=2)

      'ilID' => string '72' (length=2)

  'Ilceler' => string '762' (length=3)

  'anne_adi' => string 'AyÅŸe' (length=5)

  'baba_adi' => string 'Ali' (length=3)

  'tel' => string '05320000000' (length=11)

  'kan_grubu' => string '2' (length=1)

  'cinsiyet' => string '1' (length=1)

  'adres' => string 'test' (length=4)

  'adresIlceler' => string '864' (length=3)

  'uye_gorevi' => string '' (length=0)

  'uye_kayit_tarihi' => string '2014-07-01' (length=10)

  'uye_durumu' => string '0' (length=1)

  'ekle' => string 'Ãœye Ekle' (length=9)

Merhaba @Nahit

dump bilgilerindeki verilere göre




..

'Iller' => 

    array (size=2)

      'ad' => string '64' (length=2)

      'ilID' => string '72' (length=2)

..




$_POST['Iller']['ilID'];

şeklinde kullanabilirsiniz,

Tarih bilgisini gün.ay.yıl şeklinde göstermeniz için php 5.3 ve üzeri olması şartıyla şu kodu kullanabilirsiniz.




date('d.m.Y', strtotime($_POST['dogum_tarihi']));

date('d.m.Y', strtotime($_POST['uye_kayit_tarihi']));



buradaki …date(‘d.m.Y’… alanını istediğiniz şekilde değiştirerek farklı formatlarda da görüntüleyebilirsiniz.

Merhaba @Yahya Sönmez

Sorunu çözdüm. Artık başarıyla formu post edebiliyorum.