Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter-在更新记录时向数据库中的form_下拉列表添加默认值_Php_Mysql_Codeigniter - Fatal编程技术网

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>