Php CodeIgniter-在更新记录时向数据库中的form_下拉列表添加默认值
我想知道是否有人能帮我。我有一个表单下拉列表,里面充满了数据库中的选项。我想显示用户在插入记录时选择的默认值,但如果不将其添加到数据库中,我就无法确定如何执行该操作 这是一个模型 这只是下拉函数类型的视图Php CodeIgniter-在更新记录时向数据库中的form_下拉列表添加默认值,php,mysql,codeigniter,Php,Mysql,Codeigniter,我想知道是否有人能帮我。我有一个表单下拉列表,里面充满了数据库中的选项。我想显示用户在插入记录时选择的默认值,但如果不将其添加到数据库中,我就无法确定如何执行该操作 这是一个模型 这只是下拉函数类型的视图 ?> 考虑以下几点。这应该是显而易见的,我不是PHP程序员,但它应该给你一个想法 <?php /* DROP TABLE IF EXISTS colours; CREATE TABLE colours(colour VARCHAR(12) NOT
?>
考虑以下几点。这应该是显而易见的,我不是PHP程序员,但它应该给你一个想法
<?php
/* DROP TABLE IF EXISTS colours;
CREATE TABLE colours(colour VARCHAR(12) NOT NULL PRIMARY KEY);
INSERT INTO colours VALUES
('Red'),('Orange'),('Yellow'),('Green'),('Blue'),('Indigo'),('Violet');
DROP TABLE IF EXISTS users;
CREATE TABLE users
(username VARCHAR(12) NOT NULL PRIMARY KEY
,colour VARCHAR(12) NOT NULL
);
INSERT INTO users VALUES
('Adam','Orange'),('Bob','Green'),('Charlie','Red'),('Dan','Yellow');
*/
include('path/to/connection/stateme.nts');
$query = "
SELECT c.*
, CASE WHEN u.colour = c.colour THEN 1 ELSE 0 END selected
FROM colours c
LEFT
JOIN users u
ON u.colour = c.colour
AND u.username = 'Adam';";
$result = mysqli_query($db,$query);
$options = '';
while($row = mysqli_fetch_assoc($result)){
if ($row['selected'] == 1){
$selected = 'selected';
} else {
$selected = '';
}
$options .= "<option $selected >{$row['colour']}\n";
} // end of while loop
?>
<select><? echo "\n$options"; ?> </select>
所以您选择了$selected=''
。然后,在循环浏览结果时,如果用户的值等于下拉值$selected='selected'
,则无法获取u。form_下拉列表($type)包含数据库中的所有值,只是想向用户显示在插入记录时所选的值。提前谢谢@strawberry我不熟悉这个功能
function update($a_id)
{
$data['a_id'] = $a_id;
$data['type'] = $this->sf_model->get_type();
$data['view'] = $this->sf_model->get_account_record($a_id);
$this->form_validation->set_rules('a_name', 'Account Name', 'trim|required|xss_clean|callback_alpha_only_space');
$this->form_validation->set_rules('a_web', 'Website', 'trim|required|xss_clean');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('viewUpdate', $data);
}
else
{
$data = array(
'a_id' => $this->input->post('a_id'),
'a_name' => $this->input->post('a_name'),
'a_website' => $this->input->post('a_web'),
't_id' => $this->input->post('a_type'),
'a_billingStreet' => $this->input->post('a_billingStreet'),
'a_billingCountry' => $this->input->post('a_billingCountry'),
'a_mobile' => $this->input->post('a_mobile')
);
$this->db->where('a_id',$_POST['a_id']);
$this->db->update('account_info', $data);
redirect('salesforce' . $a_id);
}
}
<?php
$attributes = 'class = "form-control" id = "a_type"';
echo form_dropdown('a_type',$type,set_value('a_type'),$attributes);?>
<span class="text-danger"><?php echo form_error('a_type'); ?></span>
?>
<?php
/* DROP TABLE IF EXISTS colours;
CREATE TABLE colours(colour VARCHAR(12) NOT NULL PRIMARY KEY);
INSERT INTO colours VALUES
('Red'),('Orange'),('Yellow'),('Green'),('Blue'),('Indigo'),('Violet');
DROP TABLE IF EXISTS users;
CREATE TABLE users
(username VARCHAR(12) NOT NULL PRIMARY KEY
,colour VARCHAR(12) NOT NULL
);
INSERT INTO users VALUES
('Adam','Orange'),('Bob','Green'),('Charlie','Red'),('Dan','Yellow');
*/
include('path/to/connection/stateme.nts');
$query = "
SELECT c.*
, CASE WHEN u.colour = c.colour THEN 1 ELSE 0 END selected
FROM colours c
LEFT
JOIN users u
ON u.colour = c.colour
AND u.username = 'Adam';";
$result = mysqli_query($db,$query);
$options = '';
while($row = mysqli_fetch_assoc($result)){
if ($row['selected'] == 1){
$selected = 'selected';
} else {
$selected = '';
}
$options .= "<option $selected >{$row['colour']}\n";
} // end of while loop
?>
<select><? echo "\n$options"; ?> </select>
<select>
<option >Blue
<option >Green
<option >Indigo
<option selected >Orange
<option >Red
<option >Violet
<option >Yellow
</select>