2016-06-28 17 views
0

我目前有一個窗體,其中包含一個從數據庫中提取菜單項的下拉菜單。 我期望實現的是允許用戶選擇這些值中的一個並將其添加到數據庫。表單目前正在提交併正確插入,但數據庫除外。當我嘗試將下拉值添加到數據庫時,所有輸入都會返回爲空。如果我把它拿出來,它可以正常工作。使用代碼點火器將下拉值提交到數據庫

<form name = "form1" id = "form1" method ="post"> <!--action="<?php echo base_url()."index.php/Admin/create_user"; ?>"--> 
    <?php echo validation_errors(); ?> 
    <label for="first_name" class = "labelForm">First Name:</label> 
    <input type="text" id="first_name" name="first_name" class = "input2"> 
    <label for="last_name" class = "labelForm">Last Name:</label> 
    <input type="text" id="last_name" name="last_name" class = "input2"> 
    <label for="username" class = "labelForm">Username:</label> 
    <input type="text" id="username" name="username" class = "input2" onblur="check_if_exists();"> 
    <label for="password" class = "labelForm">Password:</label> 
    <input type="password" id="password" name="password" class = "input2" onblur="validatePassword();"> 
    <label for="passconf" class = "labelForm">Password:</label> 
    <input type="password" id="passconf" name="passconf" class = "input2" onblur="checkPasswords();"> 
    <label for="email" class = "labelForm">Email:</label> 
    <input type="text" id="email" name="email" class = "input2"> 


<!-- <label for="hospital" class = "labelForm">Hospital:</label> 
    <select name="product" class = "input2" id = "hospitals"> 
     <option selected disabled hidden style='display: none' value=''></option> 
     <?php foreach($hospital_dropdown as $option){?> 
      <option id = "hospitals" name="hospitals" value="<?php $option->hospitalName;?>"> <?php print_r($option->hospitalName); ?> </option> 
     <?php }?> 

    </select>--> 


    <label for="hospitals" class = "labelForm">Hospital:</label> 
    <select name="product" class = "input2" id = "hospitals"> 
     <?php foreach($hospital_dropdown as $index => $option):?> 
      <option id = "hospitals_<?=$index?>" 
        name="hospitals" 
        value="<?=$option->hospitalName;?>" 
      ><?=$option->hospitalName;?></option> 
     <?php endforeach;?> 
    </select> 

    <button type="button" id = "new_user_submit">Add New User</button> 

</form> 

控制器:

function create_user(){ 

    $this->load->model('User_model'); 
    $password = $this->input->post('password'); 

    $hash = $this->bcrypt->hash_password($password); 
    $data = array(
     'first_name' => $this->input->post('first_name'), 
     'last_name' => $this->input->post('last_name'), 
     'username' => $this->input->post('username'), 
     'password' => $hash, 
     'class' => $this->input->post('userclass'), 
     'hospital' => $this->input->post('hospitals'), 
     'email' => $this->input->post('email'), 

    ); 
    $this->User_model->create_user($data); 

    $username = $this->session->userdata('username'); 

    $data['hospital_dropdown'] = $this->User_model->hospital_dropdown(); 


    $data['main_content'] = 'admin'; 
    $this->load->view('includes/admin/template', $data); 
} 

型號:

function create_user($data){ 
     $insert = $this->db->insert('users', $data); 
     return $insert; 
    } 

如果我拿出在其提交罰款,但是當我離開它,所有的字段回來控制器醫院部分爲空並且不會提交。 任何想法? 謝謝!

+0

你傳球之前先查看vae_dump所有值? –

+0

@FaisalMehmoodAwan值被成功添加到下拉菜單,只是將它們添加到數據庫中的問題是目前的問題 – user

回答

1

你必須在加價的你的PHP的一部分幾個錯誤:

  1. 創建一個唯一的ID:<option id = "hospitals" >不是唯一

  2. 需要回聲出期權的價值,現在它是空的

  3. 您使用print_r()來回顯您的hospitalName。通常,在你的情況下,你可以用echo()來做到這一點。 print_r的是有用的,以測試變量的內容,看到更多here

  4. 還有其他的語法與您的加價混合PHP,笨建議these

  5. <select></select>標籤已丟失/錯誤的名稱屬性,看here 。您正在使用的name屬性的「產品」,而不是,但你控制器,你寫'hospital' => $this->input->post('hospitals')

恢復:下面應該解決您的問題(一個或多個)

<select name="hospitals" id="hospitals"> 
    <?php foreach($hospital_dropdown as $index => $option):?> 
     <option value="<?=$option->hospitalName;?>"> 
      <?=$option->hospitalName;?> 
     </option> 
    <?php endforeach;?> 
</select> 
+0

我已更新我的問題以顯示改進,但不幸的是,它仍然獲得所有字段爲NULL時嘗試提交..任何想法?謝謝您的幫助! – user

+0

我發現了另一個問題,現在它應該工作 – Vickel

+0

非常感謝你@vickel!解決了我的問題!再次感謝 – user

相關問題