2017-08-08 65 views
0

我正在使用CodeIgniter並且在數據庫中遇到了一些問題。我使用數據庫中的表'客戶'的客戶名填充我的下拉列表。我需要從下拉列表中選擇名稱,以輸入項目名稱並將其添加到數據庫表「項目」中,但在此表中,我不應該有客戶的名稱,而是其ID。我該如何執行它?而當我想發送不是id,但名稱 - 我有一個錯誤:該customerName具有NULL值。dropdown value to db codeigniter

Here is my controller

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

    class Add extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->load->helper(array('url', 'form')); 
     $this->load->model("addmodel"); 
     $this->load->library('session'); 
    } 

    private function view($page, $data=false) { 
     $this->load->view("header.php", $data); 
     $this->load->view($page, $data); 
     $this->load->view("footer.php", $data); 
     } 

    public function add_project() { 
     $this->load->database(); 
     $data['customers']=$this->addmodel->select_customer(); 
     $this->view('add/add_project.php', $data); 

     } 
     public function new_project() { 
     $this->load->database(); 
     $data['customers']=$this->addmodel->select_customer(); 

     $this->load->view("add/add_project.php", $data); 

     $projectName = $this->input->post("projectName"); 
     $customerID = $this->input->post("customerName"); 

     $this->addmodel->add_project($projectName, customerID); 

     redirect("add_project", "refresh"); 
     } 
    } 

Here is my model

<?php 
class AddModel extends CI_Model { 

    public function __construct() { 

     $this->load->database(); 

    } 

    function add_project($projectName, $customerID) { 

    $this->db->insert('projects', array(
     'projectName' => $projectName, 
     'customerID' => $customerID 
)); 

    } 

function select_customer() { 
    $query = $this->db->get('customers'); 
    return $query; 
    } 
    } 
    ?> 

and, finally, here is my view

<?php echo form_open('new_project'); ?> 


    <div id="form-main"> 
    <div id="form-div"> 
    <form class="form" id="form1"> 

    <select class="feedback-input" id="customer_selecter"> 
     <option name="customerName">Select customer</option> 
     // <?php 
      foreach($customers->result() as $row){ 
       echo '<option value="'.$row->customerID.'">'.$row->customerName.'</option>'; 
      } 
      ?> 
     </select> 

     <p class="projectName"> 
      <input type="text" name="projectName" placeholder="Project name" required class="feedback-input" id="projectName" /> 
     </p> 


     <div class="submit"> 
      <button type="submit" id="button-red">Add</button> 
     <div class="ease"></div> 
      </form> 
     </div> 
    </form> 
    </div> 
+1

您的問題律混亂,那你真正想要做什麼? – chigs

+0

'$ this-> addmodel-> add_project($ projectName,customerID);'應該是'$ this-> addmodel-> add_project($ projectName,$ customerID);'你忘了'$' –

+0

我想發送到db在下拉 – Ksenia

回答

0

更改HTML代碼選擇框名字是這樣的:

<select class="feedback-input" id="customer_selecter" name="customerName"> 
     <option >Select customer</option> 
     // <?php 
     foreach($customers->result() as $row){ 
      echo '<option value="'.$row->customerID.'">'.$row->customerName.'</option>'; 
     } 
     ?> 
</select> 

而且需要通過CORRCT變量客戶ID與$這樣的:

$this->addmodel->add_project($projectName, $customerID);

+0

謝謝你!現在項目的名稱轉到db,但在customerID列中,值爲0. – Ksenia

+0

是您的'customerID'字段類型是'int' @Ksenia? – Nawin

+0

您想存儲您的客戶名稱或客戶ID @Ksenia? – Nawin

0

更改選項值$按行>客戶名稱,這樣就可以得到客戶的名字

<select class="feedback-input" id="customer_selecter" name="customerName> 
    // <?php 
     foreach($customers->result() as $row){ 
      echo '<option value="'.$row->customerID.'">'.$row->customerName.'</option>'; 
     } 
     ?> 
    </select> 
+0

這是NULL再次:( 數據庫出錯 錯誤編號:1048 列「的customerID」不能爲空 INSERT INTO'projects' ('projectName','customerID')VALUES('name',NULL) 文件名:C:/wamp64/www/codeIgniter-3.1.5/system/database/DB_driver.php 行號:691 – Ksenia

+0

我已編輯代碼 –