Я нашел похожие вопросы, но я не могу найти ответы, которые подходят для моей ситуации.Codeigniter Вставьте несколько строк в db с табличной формой
Использование Codeigniter: У меня есть таблица db для продуктов и таблица db для инвентаря. Я хочу отобразить таблицу html на моем сайте, причем каждая строка является продуктом. Я включил изображение, которое поможет объяснить.
После представления я хотел бы вставить каждый продукт строку данных в качестве отдельной строки в базе данных.
Это мой контроллер в его наиболее простой форме ...
CONTROLLER ----------------------------- -----
function add_show_inventory()
{
$data['products']=$this->product->get_products();
$this->form_validation->set_rules('skuID', 'skuID', 'required');
$this->form_validation->set_rules('brought-in', '"Brought In"', 'required');
$this->form_validation->set_rules('finished-with', '"Finished With"', 'required');
$this->form_validation->set_rules('deliveries', 'Deliveries');
$this->form_validation->set_rules('add-1', 'Add 1');
$this->form_validation->set_rules('add-2', 'Add 2');
$this->form_validation->set_rules('band-comp', 'Band Comp');
$this->form_validation->set_rules('other-comp', 'Other Comp');
$this->form_validation->set_rules('half-sales', 'Half Sales');
$this->form_validation->set_rules('half-amount', 'Half Amount');
$this->form_validation->set_error_delimiters('<div class="error-module">', '</div>');
if($this->form_validation->run()== FALSE){
$this->load->view('header');
$this->load->view('menu');
$this->load->view('inventory/show-add-inventory', $data);
$this->load->view('footer');
} else {
if($_POST){
$data=array(
'brought-in'=>$_POST['brought-in'],
);
$this->inventory->insert_inventory($data);
redirect(base_url().'shows/');
}
}
}
ПРОДУКТЫ МОДЕЛЬ -------------------------------
function get_products($num=10,$start=0) {
$where= array('userID'=>$this->session->userdata('userID'), 'active'=>1);
$this->db->select()
->from('products')
->where($where)
->order_by('product','asc')
->limit($num,$start);
$query=$this->db->get();
return $query->result_array();
}
INSERT INV MODEL ------------------------------------------
function insert_inventory($data) {
$product_count= $this->db->count_all('products');
for ($i=0; $i < $product_count; $i++) {
$this->db->insert('inventory', array('brought-in'=>$_POST['brought-in']));
}
return $this->db->insert_id();
}
VIEW ------------------------------------------
<form action="<?= base_url(); ?>inventories/add_show_inventory" method="post">
<?php if(!isset($products)){ ?>
<p>There are currently no products posted yet.</p>
<?php } else {
foreach($products as $row){
?>
<td class="highlight">
<input type="text" name="brought-in" value="0"> <!-- Brought In -->
</td>
<?php } ?>
<input type="submit" name="submit" class="submit">
Результаты, полученные из этого кода, представляют собой три ввода в БД, которые я хочу, но все строки идентичны последней строке в форме ... что означает, что итерация в модели только итерации по этому последний ряд на форме ...
Опять же этот код урезается до его простой формы, поэтому у меня нет 3 полных страниц кода ... но если вы хотите увидеть что-нибудь, что я не показываю, пожалуйста, дайте мне знать ...
Любые и все очень оцененная ... Я работал над этим в течение нескольких недель ...
, что приходит в $ _POST [ 'brought- в']. Единое значение или массив? –
как вы получаете и передаете строку из модели для просмотра? –
Я думал, что это будет массив всех введенных полей ввода, но я уверен, что он не захватывает массив ... и я не уверен, как это сделать ... –