Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Прошу помощи с циклами foreach


Evgenka

Recommended Posts

Всем привет.

Стоит модуль покупки в 1 клик. Список с заказами в админке выводит в отдельный лист заказов catapulta_list.tpl

К каждому товару присвоен поставщик. Пытаюсь добавить вывод поставщика заказанного товара в листе заказов.

В контроллере дописал цикл, в модели так же написал запрос к БД.

В массиве к каждому товару выводится shop_name

 

			$results = $this->model_catalog_catapulta->getOrders($data);

			foreach ($results as $result) {
				$action = array();

				$url .= '&order_id=' . $result['order_id'];

				$action[] = array(
					'text' => $this->language->get('button_delete'),
					'href' => $this->url->link('catalog/catapulta/delete', 'token=' . $this->session->data['token'] . $url, 'SSL')
				);
				
				$url .= '&product_id=' . $result['product_id'];

				$action[] = array(
					'text' => $this->language->get('button_cancel'),
					'href' => $this->url->link('catalog/catapulta/cancel', 'token=' . $this->session->data['token'] . $url, 'SSL')
				);				

				$this->data['orders'][] = array(
					'order_id' => $result['order_id'],
					'customer_name' => $result['customer_name'],
					'contact' => $result['contact'],
					'product_name' => $result['product_name'],
					'product_model' => $result['product_model'],
					'product_href' => $result['product_id'],
					'product_id' => $result['product_id'],
					'product_model_href' => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $result['product_id'] . $url, 'SSL'),
					'total' => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']),
					'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
					'date_added_time' => date($this->language->get('date_format_short_time'), strtotime($result['date_added'])),
					'selected' => isset($this->request->post['selected']) && in_array($result['order_id'], $this->request->post['selected']),
					'action' => $action
				);
				
			$this->data['products'] = array();

			$products = $this->model_catalog_catapulta->getOrderProducts($result['order_id']);
				foreach ($products as $product) {

				$this->data['products'][] = array(
                    'shop_name'        => $product['shop_name']
				);
			}				
		}

 

Теперь пытаюсь все это дело вывести в catapulta_list.tpl и вот тут возникает проблема.

Делаю это так:

						<?php if ($orders) { ?>
						<?php foreach ($orders as $order) { ?>
						<tr>
							<td style="text-align: center;"><?php if ($order['selected']) { ?>
								<input type="checkbox" name="selected[]" value="<?php echo $order['order_id']; ?>" checked="checked" />
								<?php } else { ?>
								<input type="checkbox" name="selected[]" value="<?php echo $order['order_id']; ?>" />
								<?php } ?></td>
							<td class="right"><?php echo $order['order_id']; ?></td>
							<td class="right"><?php echo $order['customer_name']; ?></td>
							<td class="right"><?php echo $order['contact']; ?></td>
							
							<?php foreach ($products as $product) { ?>							
							<td class="right"><?php echo $product['shop_name']; ?></td>	
							<?php } ?>
                          
							<td class="right"><a href="http://site.ru/index.php?route=product/product&path=154&product_id=<?php echo $order['product_href']; ?>"target="_blank"><?php echo $order['product_name']; ?></a></td>
							<td class="right"><a href="<?php echo $order['product_model_href']; ?>"><?php echo $order['product_model']; ?></td>
							<td class="right"><?php echo $order['total']; ?></td>
							<td class="left"><?php echo $order['date_added_time']; ?></td>
							<td class="right"><?php foreach ($order['action'] as $action) { ?>
								[ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
								<?php } ?></td>
						</tr>
						<?php } ?>
						<?php } else { ?>
						<tr>
							<td class="center" colspan="7"><?php echo $text_no_results; ?></td>
						</tr>
						<?php } ?>

 

Но при таком виде всем товарам присваивается только первый поставщик из цикла и все, у всех один и тот же.

Судя по всему в цикле <?php foreach ($products as $product) { ?> ошибка.

Что не правильно сделал?

Спасибо.

Змінено користувачем Evgenka
Надіслати
Поділитися на інших сайтах


Так сделайте:Контроллер:

Скрытый текст



			$results = $this->model_catalog_catapulta->getOrders($data);

			foreach ($results as $result) {
				$action = array();

				$url .= '&order_id=' . $result['order_id'];

				$action[] = array(
					'text' => $this->language->get('button_delete'),
					'href' => $this->url->link('catalog/catapulta/delete', 'token=' . $this->session->data['token'] . $url, 'SSL')
				);
				
				$url .= '&product_id=' . $result['product_id'];

				$action[] = array(
					'text' => $this->language->get('button_cancel'),
					'href' => $this->url->link('catalog/catapulta/cancel', 'token=' . $this->session->data['token'] . $url, 'SSL')
				);				

			$order_products = array();

			$products = $this->model_catalog_catapulta->getOrderProducts($result['order_id']);
				foreach ($products as $product) {

				$order_products[] = array(
                    'shop_name'        => $product['shop_name']
				);
			}

				$this->data['orders'][] = array(
					'order_id' => $result['order_id'],
					'customer_name' => $result['customer_name'],
					'contact' => $result['contact'],
					'products' => $order_products,
					'product_name' => $result['product_name'],
					'product_model' => $result['product_model'],
					'product_href' => $result['product_id'],
					'product_id' => $result['product_id'],
					'product_model_href' => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $result['product_id'] . $url, 'SSL'),
					'total' => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']),
					'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
					'date_added_time' => date($this->language->get('date_format_short_time'), strtotime($result['date_added'])),
					'selected' => isset($this->request->post['selected']) && in_array($result['order_id'], $this->request->post['selected']),
					'action' => $action
				);
		}


 

View:

Скрытый текст



					<?php if ($orders) { ?>
						<?php foreach ($orders as $order) { ?>
						<tr>
							<td style="text-align: center;"><?php if ($order['selected']) { ?>
								<input type="checkbox" name="selected[]" value="<?php echo $order['order_id']; ?>" checked="checked" />
								<?php } else { ?>
								<input type="checkbox" name="selected[]" value="<?php echo $order['order_id']; ?>" />
								<?php } ?></td>
							<td class="right"><?php echo $order['order_id']; ?></td>
							<td class="right"><?php echo $order['customer_name']; ?></td>
							<td class="right"><?php echo $order['contact']; ?></td>
							
							<?php foreach ($order['products'] as $product) { ?>
							<td class="right"><?php echo $product['shop_name']; ?></td>	
							<?php } ?>
                          
							<td class="right"><a href="http://site.ru/index.php?route=product/product&path=154&product_id=<?php echo $order['product_href']; ?>"target="_blank"><?php echo $order['product_name']; ?></a></td>
							<td class="right"><a href="<?php echo $order['product_model_href']; ?>"><?php echo $order['product_model']; ?></td>
							<td class="right"><?php echo $order['total']; ?></td>
							<td class="left"><?php echo $order['date_added_time']; ?></td>
							<td class="right"><?php foreach ($order['action'] as $action) { ?>
								[ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
								<?php } ?></td>
						</tr>
						<?php } ?>
						<?php } else { ?>
						<tr>
							<td class="center" colspan="7"><?php echo $text_no_results; ?></td>
						</tr>
						<?php } ?>


 

Но product_name, product_model, product_href, product_id и product_model_href останутся также одни и те же на весь заказ.

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.