从数据库加载表到下拉列表CodeIgniter(Load table from database to dropdown CodeIgniter)
我将表加载到form_dropdown时遇到问题。 我尝试过任何与我同样麻烦的解决方案,但它不起作用。 这是控制器代码:
<?php class Registrasi extends Superuser_Controller { public $data = array( 'halaman' => 'registrasi', 'main_view' => 'program/administrasi/registrasi_list', 'title' => 'Data Registrasi', ); public function __construct() { parent::__construct(); $this->load->model('program/administrasi/Registrasi_model', 'registrasi_model'); } public function index() { $registrasi = $this->registrasi_model->get_all_registrasi_data(); $this->data['registrasiData'] = $registrasi; $this->load->view($this->layout, $this->data); } public function tambah() { $this->data['namaNegara'] = $this->registrasi_model->get_nama_negara(); $this->data['main_view'] = 'program/administrasi/registrasi_form'; $this->data['form_action'] = site_url('program/administrasi/registrasi/tambah'); // Data untuk form. if (! $_POST) { $registrasi = (object) $this->registrasi_model->default_value; } else { $registrasi = $this->input->post(null, true); } // Validasi. if (! $this->registrasi_model->validate('form_rules')) { $this->data['values'] = (object) $registrasi; $this->load->view($this->layout, $this->data); return; } } }
这是型号代码:
<?php class Registrasi_model extends MY_Model { protected $_tabel = 'tb_registrasi'; protected $form_rules = array( array( 'field' => 'Negara_Tujuan', 'label' => 'Negara Tujuan', 'rules' => 'trim|xss_clean|required|max_length[50]' ) ); public $default_value = array( 'Negara_Tujuan' => '' ); public function get_nama_negara() { $query = $this->db->query('SELECT Nama_Negara FROM tb_negara_tujuan'); return $query->result(); } }
这是视图代码:
<div class="container"> <h2>Form Registrasi</h2> <hr> <?php echo form_open($form_action, array('id'=>'myform', 'class'=>'myform', 'role'=>'form')) ?> <div class="container"> <div class="row"> <div class="form-group has-feedback <?php set_validation_style('Negara_Tujuan')?>"> <?php echo form_label('Negara Tujuan', 'negara_tujuan', array('class' => 'control-label')) ?> <?php foreach($namaNegara as $row) { echo form_dropdown('NegaraTujuan', $row->Nama_Negara); } ?> <?php set_validation_icon('Negara_Tujuan') ?> <?php echo form_error('Negara_Tujuan', '<span class="help-block">', '</span>');?> </div> <?php echo form_button(array('content'=>'Simpan', 'type'=>'submit', 'class'=>'btn btn-primary', 'data-confirm'=>'Anda yakin akan menyimpan data ini?')) ?> </div> </div> <?php echo form_close() ?> </div>
我遇到的麻烦是:为foreach()提供的参数无效
I have trouble with loading the table to the form_dropdown. I have tried any solution from the same trouble with me but its not working. Here's the controller code:
<?php class Registrasi extends Superuser_Controller { public $data = array( 'halaman' => 'registrasi', 'main_view' => 'program/administrasi/registrasi_list', 'title' => 'Data Registrasi', ); public function __construct() { parent::__construct(); $this->load->model('program/administrasi/Registrasi_model', 'registrasi_model'); } public function index() { $registrasi = $this->registrasi_model->get_all_registrasi_data(); $this->data['registrasiData'] = $registrasi; $this->load->view($this->layout, $this->data); } public function tambah() { $this->data['namaNegara'] = $this->registrasi_model->get_nama_negara(); $this->data['main_view'] = 'program/administrasi/registrasi_form'; $this->data['form_action'] = site_url('program/administrasi/registrasi/tambah'); // Data untuk form. if (! $_POST) { $registrasi = (object) $this->registrasi_model->default_value; } else { $registrasi = $this->input->post(null, true); } // Validasi. if (! $this->registrasi_model->validate('form_rules')) { $this->data['values'] = (object) $registrasi; $this->load->view($this->layout, $this->data); return; } } }
Here's the model code:
<?php class Registrasi_model extends MY_Model { protected $_tabel = 'tb_registrasi'; protected $form_rules = array( array( 'field' => 'Negara_Tujuan', 'label' => 'Negara Tujuan', 'rules' => 'trim|xss_clean|required|max_length[50]' ) ); public $default_value = array( 'Negara_Tujuan' => '' ); public function get_nama_negara() { $query = $this->db->query('SELECT Nama_Negara FROM tb_negara_tujuan'); return $query->result(); } }
Here's the view code:
<div class="container"> <h2>Form Registrasi</h2> <hr> <?php echo form_open($form_action, array('id'=>'myform', 'class'=>'myform', 'role'=>'form')) ?> <div class="container"> <div class="row"> <div class="form-group has-feedback <?php set_validation_style('Negara_Tujuan')?>"> <?php echo form_label('Negara Tujuan', 'negara_tujuan', array('class' => 'control-label')) ?> <?php foreach($namaNegara as $row) { echo form_dropdown('NegaraTujuan', $row->Nama_Negara); } ?> <?php set_validation_icon('Negara_Tujuan') ?> <?php echo form_error('Negara_Tujuan', '<span class="help-block">', '</span>');?> </div> <?php echo form_button(array('content'=>'Simpan', 'type'=>'submit', 'class'=>'btn btn-primary', 'data-confirm'=>'Anda yakin akan menyimpan data ini?')) ?> </div> </div> <?php echo form_close() ?> </div>
The trouble I'm having is: Invalid argument supplied for foreach()
原文:https://stackoverflow.com/questions/36356480
更新时间:2022-05-28 20:05
最满意答案
我相信IE的盒子模型会混淆Nivo代码。
添加这个CSS规则似乎解决了这个问题:
#slider { height: 355px; }
I believe something about IE's box model confuses the Nivo code.
Adding this CSS rule seems to fix it:
#slider { height: 355px; }
相关问答
更多-
也许在身体的Nivo为Nivo加载你的脚本,以确保它不会在head运行并导致任何类型的timeout问题。 一旦DOM了解到存在img ,它就会继续,并且该图像将在其同时继续加载HTML的其余部分时加载。 也许所有的img都没有下载,因此Nivo Slider无法正常渲染。