我已經與這個問題鬥爭了幾個小時。我有這個方法我的模型(笨):1和'1'之間的PHP差異
public function get_umat($kelas1 = 0, $kelas2 = 0) {
$this->db->select('*');
$this->db->from('msumat');
$this->db->join('mskelas', 'msumat.kelas_id = mskelas.kelas_id');
if($kelas1 != 0)
{
echo $kelas1;
var_dump($kelas1);
$this->db->where('mskelas.kelas_id', $kelas1);
}
else if($kelas2 !=0)
{
echo '2';
$this->db->where('mskelas.kelas_id', $kelas2);
}
else if($kelas1 != 0 && $kelas2 !=0)
{
echo '3';
$this->db->where('mskelas.kelas_id BETWEEN $kelas1 AND $kelas2');
}
return $this->db->get();
}
編輯: 的一個不工作是在這行代碼(從上面取):
$this->db->where('mskelas.kelas_id', $kelas1);
其不是工作時,我在我的控制器中調用此方法,如下所示:
$this->backend_m->get_umat($_POST['ddl_kelas1'], $_POST['ddl_kelas1']);
我得到 '1'(字符串)當我vardump的($_POST['ddl_kelas1']
然後我嘗試變化控制器的參數,但它仍然不工作:
$this->backend_m->get_umat(1, $_POST['ddl_kelas1']);
拼命,我試着直接在模型中改變參數,它的工作原理:
public function get_umat($kelas1 = 1, $kelas2 = 0)
這裏發生了什麼?我認爲它與1(int)和'1'(字符串)的區別有關。謝謝:D
編輯2: 經過一些實驗,我認爲變量類型不是這裏的問題。那是因爲: 我試圖做這在我的控制器:
if(isset($_POST['btnSearch']))
{
$test = (int)$_POST['ddl_kelas1'];
$this->backend_m->get_umat($_POST['ddl_kelas1'] , $_POST['ddl_kelas1']);
}
這在我的模型:
if((int)$kelas1 != 0)
{
echo $kelas1;
var_dump($kelas1);
$this->db->where('mskelas.kelas_id', $kelas1);
}
什麼,我得到的是,該$kelas1
現在已經是一個整數,但代碼仍然是而不是工作。我認爲它有東西在HTML做$_POST
我select
,或別的東西:d
然而,這個代碼仍然可以正常使用(就像上面,我手動更改的參數設置爲1(整數)):
public function get_umat($kelas1 = 1, $kelas2 = 0)
這是我的全部控制器代碼:
public function index() {
//table
$data_umat = $this->backend_m->get_umat()->result();
$this->table->set_heading(
'No',
'Nama',
'Kelas',
'Alamat',
'Sekolah',
'Nomor Telepon',
'Keterangan'
);
$table_template = array('table_open' => '<table border="1" id="custom_table">');
$this->table->set_template($table_template);
$no = 1;
foreach($data_umat as $list_temp)
{
$this->table->add_row(
$no++,
$list_temp->nama,
$list_temp->kelas,
$list_temp->alamat,
$list_temp->sekolah,
$list_temp->no_tlpn,
$list_temp->keterangan
);
}
$data_kelas = $this->backend_m->get_kelas()->result();
$data['list_kelas'][0] = 'Pilih Kelas';
foreach($data_kelas as $row)
{
$data['list_kelas'][$row->kelas_id] = $row->kelas;
}
$data['table'] = $this->table->generate();
$this->load->view('backend/home_v', $data);
if(isset($_POST['btnSearch']))
{
//$test = (int)$_POST['ddl_kelas1'];
$test = (int)$this->input->post('ddl_kelas1');
$this->backend_m->get_umat($test , $_POST['ddl_kelas1'], $_POST['txtNama']);
}
}
相當混亂,咩?
簡單的答案對於那些有同樣的問題 使用$_POST
或$this->input->post()
模型,在控制器不。所以我們不要必須調用模型的方法。
「不工作」是什麼意思?描述*發生的事情和你的期望。 – deceze 2013-03-19 14:19:14
1可以代表一個整數,'1'代表一個varchar – 2013-03-19 14:19:15
編輯,謝謝:D – 2013-03-19 14:22:52