2013-03-02 2 views
0

Новое в codeigniter и пытается раздобыть проверенные строки из пользовательской формы.Codeigniter обновляет данные таблицы mysql из формы с помощью флажка

мой взгляд генерирует форму с данными MySQL, как показано ниже:

<?php 
    echo form_open('masterdata/update_customers'); 
?> 

<table> 
    <tr> 
     td>&nbsp;</td><td>Customer Name</td><td>postalcode</td> 
    <tr> 

<?php if(isset($records)) : foreach ($records as $row) : ?> 
    <tr> 
     <td> 
      <input type=checkbox name="editcustomer[]" id="editcustomer[]" value="<?php echo $row->id ?>"> 
     </td> 
     <td> 
      <input type="text" name="customername_<?php echo $row->id ?>" id="customername_<?php echo $row->id ?>" value="<?php echo $row->customer_name ; ?>" > 
     </td> 
     <td> 
      <input type="text" name="postalcode_<?php echo $row->id ?>" id="postalcode_<?php echo $row->id ?>" value="<?php echo $row->postalcode ; ?>" > 
     </td> 
    </tr> 
<?php endforeach ; ?> 
    </table> 
<input type="submit" value="Update Selected"> 
<?php else : ?> 
<h2> No Records Found</h2> 
<?php endif; ?> 
<?php echo form_close(); ?> 

Это работает отлично, как я получаю мое уникальное имя и значение для всех полей ввода.

Моя проблема теперь пытается передать выбранные флажки и там значения для codeigniter и получить их для обновления каждой строки.

традиционно я бы использовал foreach($_POST['editcustomer'] as $editcustomer){, но наклоняю, чтобы моя голова обходилась с этим в кодеригнере.

моя функция контроллера, update_customers на данном этапе является очень простой:

function update_customers() 
    { 

     $this->form_validation->set_rules("customer_name","`Customer Name`","required|min_length[6]|xss_clean"); 
     $this->form_validation->set_rules("postalcode","`Postal Code`","required|xss_clean|min_length[6]"); 


     if ($this->form_validation->run() == FALSE){ 
      $data["message"]=""; 

      $data['title']="Master Data Home Page"; 
      $this->load->view("master_data/view_master_data_header",$data); 
      $this->load->view("master_data/view_master_data_nav"); 
      $this->load->view("master_data/view_content_master_data_manage_customers"); 
      $this->load->view("master_data/view_master_data_footer"); 
     } else { 

     $data = array(
      'customer_name' => $this->input->post('customer_name'), 
      'postalcode' => $this->input->post('postalcode'), 
      ); 

     $this->model_master_data->update_customer_records($data); 

     $this->customers_updated(); 
     } 
    } 

Моя функция модели, update_customer_records является:

function update_customer_records($data) 
{ 

     $this->db->where('id',$this->input->post('id')); 
    $this->db->update('customers',$data); 


} 

Я знаю, что есть совсем немного не хватает здесь, как обработка только строки проверены. но не уверен, как добавить это. Во-вторых, мое уникальное имя и идентификатор сгенерированы, по моему мнению: name="customername_<?php echo $row->id ?>" id="customername_<?php echo $row->id ?>"

Как получить обновление, применимое к уникальному имени ввода формы? Мне нужно добавить префикс customername_ и postalcode_ к значению input-> post (?)?

Любое направление или помощь здесь будут оценены. спасибо миллион заранее.

ответ

1

С CodeIgniter, если вам нужно получить значения флажка, вы должны использовать $ this-> input-> post ('name_of_your_checkbox'). Он возвращает массив.

Например, если у вас есть, что в представлении:

<input type="checkbox" name="editcustomer[]" value="1" /> 
<input type="checkbox" name="editcustomer[]" value="2" /> 
<input type="checkbox" name="editcustomer[]" value="3" /> 

От контроллера:

public function update_customers() { 

    $editcustomer = $this->input->post('editcustomer'); 

} 

Возврат:

Array { 
    [0] => 1 
    [1] => 2 
    [2] => 3 
} 
Смежные вопросы