Я использую Codeigniter для написания системы корзины покупок. Пытались исследования, но не может понять, каким образом, я хочу, чтобы получить динамическое значение «зеленый/красный/желтый» в динамическом раскрывающемся списке, как показано ниже:получить динамическое значение внутри цикла foreach
Ниже мой код: Модель:
class Products_model extends CI_Model {
public function get_all() {
$result = $this->db->get('products');
foreach ($result->result() as $value) {
if ($value->option_values){
$value->option_values = explode(',', $value->option_values);
}
} return $result;
}
контроллер:
class Shopping_cart extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('html');
$this->load->model('products_model');
$this->load->library('cart');
}
public function index() {
$data['records'] = $this->products_model->get_all();
$data['main'] = 'shopping_cart_view';
$this->load->view('templates/shopping_cart', $data);
}
public function add() {
//If the product is not listed, perform insert
$data = array(
'id' => $this->input->post('id'),
'qty' => $this->input->post('quantity'),
'price' => $this->products_model->get_by_id($this->input->post('id'))->price,
'name' => $this->products_model->get_by_id($this->input->post('id'))->name,
'option' => '' //I want to get the dynamic values in dropdown list and put in to this option array.
);
$this->cart->insert($data);
redirect('shopping_cart');
}
Вид:
<?php
//List products
foreach ($records->result() as $value) :
echo form_open('shopping_cart/add');
?>
<?php //List the dropdown if value has option i.e color/size/type
if ($value->option_name)
:?>
<?php echo form_label($value->option_name, $value->id)?>
<?php echo form_dropdown(
$value->option_name,
$value->option_values
)?>
<?php endif;?>
<?php
echo form_hidden('id', $value->id);
echo form_submit('submit', 'Add to cart');
?>
<?php echo form_close();?>
<?php endforeach; ?>
И ниже $ this-> cart-> содержание(), когда я представил "добавить в корзину":
Array ([c4ca4238a0b923820dcc509a6f75849b] => Array ([rowid] => c4ca4238a0b923820dcc509a6f75849b [id] => 1 [qty] => 1 [price] => 100 [name] => T-shirt [option] => [subtotal] => 100))
Я бегу из идей попытаться получить динамическое значение внутри динамического цикла. Любые рекомендации действительно оценены.
Спасибо!
'option' в представленных данных пуст. не имеет значения, что вы делаете в CI, чтобы прочитать это значение - оно все равно будет пустым. вам нужно выяснить, почему ваша форма не создает форму правильно, чтобы на самом деле вернуть эти значения цвета. –
Привет, Марк, Спасибо за ответ. Я использую form_dropdown() для представления значения, а в HTML это как 1,2,3 ниже: Зеленый Red Так я хочу, чтобы получить имя значения не 1,2,3 –
SonDang
тогда вам необходимо либо вставить имя цвета в качестве значения, например '' или иметь сопоставление на сервере, чтобы вы могли делать переводы '0-> green'. –