Arkadaşlar merhabalar. chtml ile oluşturduğum formu activeforma dönüştürdüm. Formu controllere post ediyorum ama hata veriyor. Sorun nereden kaynaklanıyor acaba? chtml’den farklı olarak kullanmamız gereken şeyler mi var.
Hata:
Undefined index: uye_id
bütün form elementleri için aynı hatayı veriyor.
view dosyam ekle.php
<?php
/* @var $this UyelerController */
/* @var $model Uyeler */
?>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'uyeler-form',
'action'=>Yii::app()->createUrl('//uye/ekle'),
'method'=>'post',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($uyeler); ?>
<div class="row">
<?php echo $form->labelEx($uyeler,'uye_id'); ?>
<?php echo $form->textField($uyeler,'uye_id',array('size'=>11,'maxlength'=>11)); ?>
<?php echo $form->error($uyeler,'uye_id'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'adi'); ?>
<?php echo $form->textField($uyeler,'adi',array('size'=>11)); ?>
<?php echo $form->error($uyeler,'adi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'soyadi'); ?>
<?php echo $form->textField($uyeler,'soyadi',array('size'=>11)); ?>
<?php echo $form->error($uyeler,'soyadi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'dogum_yeri'); ?>
<?php echo $form->textField($uyeler,'dogum_yeri',array('size'=>11)); ?>
<?php echo $form->error($uyeler,'dogum_yeri'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'dogum_tarihi'); ?>
<?php $this->widget('zii.widgets.jui.CJuiDatePicker',array(
'name'=>'dogum_tarihi',
'language' => 'tr',
'value'=>date('Y-m-d'),
// additional javascript options for the date picker plugin
'options'=>array(
'showAnim'=>'fold',
'dateFormat' => 'yy-mm-dd', //save to db format
// 'altFormat' => 'dd-mm-yy', // show to user format
'changeMonth' => 'true', // ay değiştirme
'changeYear' => 'true', // yıl değiştirme
'showOtherMonths'=>true,// Show Other month in jquery
'selectOtherMonths'=>true,// ay seçebilme
//'showButtonPanel'=>true, // altta kapat ve bugün butonlarını oluşturuyor.
'yearRange'=>'1900:2099', // yıl aralığı
'showOn'=>'button', // 'focus', 'button', 'both' // butona (ikon) tıklandığında ajandanın açılması için
'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.png', // ikonun yolu
'buttonImageOnly'=>true, // buton kısmında sadece resmin görünmesini sağlıyor. False olsa butun görünür ve butonun üstünde ikon görünür
),
'htmlOptions'=>array(
'style'=>'width:100px;vertical-align:top'
),
)); ?>
<?php echo $form->error($uyeler,'dogum_tarihi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($iller,'nufus_ili'); ?>
<?php echo $form->DropDownList($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',))
); ?>
<?php echo $form->error($iller,'nufus_ili'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($iller,'nufus_ilcesi'); ?>
<?php echo CHtml::dropDownList('Ilceler','', array(),
array('prompt'=>'İlçe Seçiniz')); ?>
<?php echo $form->error($iller,'nufus_ilcesi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'anne_adi'); ?>
<?php echo $form->textField($uyeler,'anne_adi',array('size'=>20)); ?>
<?php echo $form->error($uyeler,'anne_adi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'baba_adi'); ?>
<?php echo $form->textField($uyeler,'baba_adi',array('size'=>20)); ?>
<?php echo $form->error($uyeler,'baba_adi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'tel'); ?>
<?php echo $form->textField($uyeler,'tel',array('size'=>20,'maxlength'=>11)); ?>
<?php echo $form->error($uyeler,'tel'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'kan_grubu'); ?>
<?php echo $form->DropDownList($uyeler,'kan_grubu',array('1'=>'A Rh (+)','2'=>'A Rh (-)','3'=>'B Rh (+)','4'=>'B Rh (-)','5'=>'AB Rh (+)','6'=>'AB Rh (-)','7'=>'0 Rh (+)','8'=>'0 Rh (-)'),array('empty' =>('Kan Grubu Seçiniz') )); // Kan Grubu listesini dropdownlistte gösteriyor. ?>
<?php echo $form->error($uyeler,'kan_grubu'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'cinsiyet'); ?>
<?php echo $form->DropDownList($uyeler,'cinsiyet',array('1'=>'Erkek','2'=>'Kadın'),array('empty' =>('Cinsiyet Seçiniz') )); // Cinsiyet listesini dropdownlistte gösteriyor. ?>
<?php echo $form->error($uyeler,'cinsiyet'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'adres'); ?>
<?php echo $form->textField($uyeler,'adres',array('size'=>20,'maxlength'=>255)); ?>
<?php echo $form->error($uyeler,'adres'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($iller,'adres_ili'); ?>
<?php echo $form->DropDownList($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',))
); ?>
<?php echo $form->error($iller,'adres_ili'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($iller,'adres_ilcesi'); ?>
<?php echo CHtml::dropDownList('adresIlceler','', array(),
array('prompt'=>'İlçe Seçiniz')); ?>
<?php echo $form->error($iller,'adres_ilcesi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'uye_gorevi'); ?>
<?php echo $form->DropDownList($uyeler,'uye_gorevi',array('1'=>'Üye','2'=>'Başkan','3'=>'Başkan Yardımcısı','4'=>'Muhasip','5'=>'Sekreter','6'=>'Yedek Üye'),array('empty' =>('Üyelik Türü Seçiniz') ,'options' => array(1 => array('selected' => 'selected')) )); // Üye görevi gösteriyor. ?>
<?php echo $form->error($uyeler,'uye_gorevi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'uye_kayit_tarihi'); ?>
<?php $this->widget('zii.widgets.jui.CJuiDatePicker',array(
'name'=>'uye_kayit_tarihi',
'language' => 'tr',
'value'=>date('Y-m-d'),
// additional javascript options for the date picker plugin
'options'=>array(
'showAnim'=>'fold',
'dateFormat' => 'yy-mm-dd', //save to db format
// 'altFormat' => 'dd-mm-yy', // show to user format
'changeMonth' => 'true', // ay değiştirme
'changeYear' => 'true', // yıl değiştirme
'showOtherMonths'=>true,// Show Other month in jquery
'selectOtherMonths'=>true,// ay seçebilme
//'showButtonPanel'=>true, // altta kapat ve bugün butonlarını oluşturuyor.
'yearRange'=>'1900:2099', // yıl aralığı
'showOn'=>'button', // 'focus', 'button', 'both' // butona (ikon) tıklandığında ajandanın açılması için
'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.png', // ikonun yolu
'buttonImageOnly'=>true, // buton kısmında sadece resmin görünmesini sağlıyor. False olsa butun görünür ve butonun üstünde ikon görünür
),
'htmlOptions'=>array(
'style'=>'width:100px;vertical-align:top'
),
)); ?>
<?php echo $form->error($uyeler,'uye_kayit_tarihi'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($uyeler,'uye_durumu'); ?>
<?php echo $form->DropDownList($uyeler,'uye_durumu',array('1'=>'Aktif','2'=>'Pasif'),array('empty' =>('Üyelik Durumu Seçiniz') ,'options' => array(1 => array('selected' => 'selected')) )); // Üyelik durumu dropdownlistte gösteriyor. ",'options' => array(0 => array('selected' => 'selected'))" istediğin value'nin seçili gelmesini sağlıyor. ?>
<?php echo $form->error($uyeler,'uye_durumu'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Üye Ekle',array('name'=>'ekle')); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
<?php
conroller dosyam
<?php
class UyeController extends Controller
{
public function actionArama($kriter)
{
/// arama yapmasını sağlayan kod
$aramasonucu = new Uyeler('search');
$aramasonucu->unsetAttributes();
if(isset($_GET['Uyeler']))
$aramasonucu->attributes=$_GET['Uyeler'];
/// arama yapmasını sağlayan kod bitiş
$this->render('arama', array('aramasonucu'=> $aramasonucu,'kriter'=> $kriter));
}
public function actionEkle()
{
if(isset($_POST['ekle']))
{
$uyeler = new Uyeler;
/* echo '<pre>';
var_dump($_POST);
exit;*/
// 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']['ad'];
$uyeler->nufus_ilcesi = $_POST['Ilceler'];
$uyeler->anne_adi = $_POST['anne_adi'];
$uyeler->baba_adi = $_POST['baba_adi'];
$uyeler->tel = $_POST['tel'];
$uyeler->e_posta = $_POST['e_posta'];
$uyeler->kan_grubu = $_POST['kan_grubu'];
$uyeler->cinsiyet = $_POST['cinsiyet'];
$uyeler->adres = $_POST['adres'];
$uyeler->adres_ili = $_POST['Iller']['ilID'];
$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 (isset($_POST['uye_id']))
{
$uyeler->attributes = $_POST['uye_id'];
$kontrol=Uyeler::model()->findAllByAttributes(array('uye_id'=> $uyeler->uye_id));
if ($kontrol)
{
$uyeler->addError('uye_id', 'Bu üye numarası daha önceden başka bir üyeye verilmiş...');
}
else {
if($uyeler->save(true))
{
// üye kaydı başarılıysa
$this->render('mesaj',Yii::app()->user->setFlash('success', "Üye Başarı ile eklendi."));
}
else
{
$this->render('mesaj',Yii::app()->user->setFlash('error', "Hata! Üye Kaydı yapılamadı."));
}
}
}
}
else
{
$iller = new Iller ;
$uyeler = new Uyeler ; // uyeler modelimizi dahil ettik
$this->render('ekle', array('uyeler'=>$uyeler,'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');
}
/* public function actionUyenokontrol()
{
$uyeler = new Uyeler ;
$data = Ilceler::model()->findAll('uye_no=:uye_no',
array(':uye_no'=>$_POST['uye_no']));
if (count($data)>0)
{
echo " bu üye daha önce alınmış "..,
}
}
*/
// 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',
),
);
}
*/
}