Checkbox

halo para master.izin bergabung

saya ingin menampilkan checkbox pada sebuah form create. misal datanya diambil dari tabel 1.saya sudah berhasil menampilkan data tersebut ke dalam form create…kemudian setelah user men-check pilihan (pilihan bisa lebih dari satu) dan klik tombol create, data akan tersimpan ke tabel 2.yang ingin saya tanyakan, bagaimana caranya data yang terpilih tersimpan ke tabel 2 dengan id yang berbeda?

mohon dengan sangat pencerahannya

can somebody help me please :-[

What is your question?

whats my question?? pertanyaannya kan udah diatas gan…

coba diulangi lagi dengan redaksional berbeda, kalo perlu sertakan nama model/tabel biar yg mo bantu dapat gambaran lebih jelas apa yang mau anda capai.

iya gan…intinya saya punya form di view gini :




<div class="form">

<?php

$form=$this->beginWidget('CActiveForm', array(

'id'=>'kirim-form',

'enableAjaxValidation'=>false,

));?>

<?php echo $form->errorSummary($model); ?>

..........

<div class="checkboxgroup">

<?php echo $form->labelEx($model,'Kepada'); ?>

<?php echo CHtml::activeCheckBoxList( $model,'id_penerima',

CHtml::listData(Jabatan::model()->findAll(),'id_jabatan','jabatan'),

array(

'separator'=>'',

'template'=>'<div>{input} {label}</div>'

)); ?>

</div>

............

<div class="row buttons">

<p style="text-align:center"><?php echo CHtml::submitButton($model->

isNewRecord ? 'Kirim' : 'Kirim'); ?>

</div>



Checkbox datanya diambil data TABEL JABATAN…nanti setelah di submit, id nya masuknya ke TABEL KIRIM. Tapi waktu submit…peringatannya gini :


"Please fix the following input errors: Penerima must be an integer."

mohon bantuan gan…

anyone?

kalo kamu pake activeCheckBoxList untuk id_penerima, kemungkinan besar waktu submit itu isinya array, mestinya id_penerima hanya 1 kan isinya?

mungkin sebaiknya pake temporary field misalnya




<?php echo CHtml::checkBoxList('daftar_penerima',

CHtml::listData(Jabatan::model()->findAll(),'id_jabatan','jabatan'),

array(

'separator'=>'',

'template'=>'<div>{input} {label}</div>'

)); ?>



ntar di controller diterima submitnya lalu dilooping satu persatu untuk disimpan:


$daftar_penerima = $_POST['daftar_penerima'];

foreach ($daftar_penerima as $id_penerima) {

  $model = new Kirim;

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

  $model->id_penerima = $id_penerima;

  $model->save();

}

konsepnya begitu, tapi ntar prakteknya jangan lupa validasi dulu, ada kemungkinan data gagal simpan

berhasil tersimpan adan daudtm…tapi hanya tersimpan 1 penerima di field id_penerima dan field daftar_penerimanya kosong.saya coba tambahkan ini :


$daftar_penerima=explode(",",$_POST['Kirim']['daftar_penerima']);

muncul :


explode() expect parameter 2 to be string, array given

How gan?

tambahan…itu pake pake activeCheckBoxList gan.trus saya ganti checkBoxList.yang muncul :


substr()expect parameter 1 to be string, onject given

jangan pake activeCheckBoxList, karena daftar_penerima kan cuman temporary variabel, abis pake buang. mending pake ini:




<?php echo CHtml::checkBoxList('daftar_penerima',

CHtml::listData(Jabatan::model()->findAll(),'id_jabatan','jabatan'),

array(

'separator'=>'',

'template'=>'<div>{input} {label}</div>'

)); ?>



coba deh, dilihat dulu hasil submitnya kayak apa, tambahin ini di controller:




  var_dump($_POST['daftar_penerima']);

//atau

  var_dump($_POST);



iya gan udah pake checkBoxList…itu echo CHtml::checkBoxList($model,‘daftar_penerima’) ada $modelnya kan ya gan?

tetep gan munculnya


substr() expect parameter 1 to be string, object given

gan mau tanya kalo tetep make activeCheckboxList kan berhasil tapi tersimpan hanya 1 di id_penerima…nggak bisa array.kalo nyimpennya aja yang jadi multi rows gimana gan? misal yang diplih 3 jadi tersimpan dg 3 id yang berbeda

up…help

maksih gan…udah SOLVED ::)

jadi akhirnya gimana solusinya, bisa dishare?

tambahin ini gan :




$model->setIsNewRecord(true);

$model->id_naskah=null;

$model->save();



works fine…and SOLVED :lol: