Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2015, 15:45   #1
MariaD
Пользователь
 
Аватар для MariaD
 
Регистрация: 10.01.2013
Сообщений: 56
Вопрос Выводит 1 последнюю картинку из массива вместо всех

PHP код:
foreach ($designs["designs"] as $post=>$value)
{
 
$s= (string) $value['images'][1][0]['url'];  
 
$url[]=$s;

$url- массив, содержащий ссылки на картинки
в шаблон передаю 'url', $url

в шаблоне вызываю как {url}

Код HTML:
<!-- loop "designs" -->
		<div class="mgdcwidget-item mgdcwidget-item-tariff-site mgdcwidget-item-tariff-shop"><div class="mgdcwidget-num">&nbsp;<span>{designs.id}</span></div>
		<div class="mgdcwidget-img"><a href="#!/mdp/design/{designs.id}">
			<img src="{url}" alt="" data-mgdcwidget-preview-src="{url}" data-mgdcwidget-preview-design-id="{designs.id}"></a></div><div class="mgdcwidget-pil clearfix"><a class="mgdcwidget-btn" href="#!/mdp/design/{designs.id}" data-mgdcwidget-design-id="{designs.id}">Посмотреть</a></div></div>
<!-- endloop -->
а выводит 1 последнюю картинку вместо всех. в чем дело?
MariaD вне форума Ответить с цитированием
Старый 24.06.2015, 16:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
foreach ($designs["designs"] as $post=>$value)
{
 $s= (string) $value['images'][1][0]['url'];  
 array_push($url,$s);
}
Не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2015, 16:52   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

или индекс надо фигачить
Код:
 $url[$i]=$s;
$i++;
или так
Код:
 $url[] .= $s;
ADSoft вне форума Ответить с цитированием
Старый 24.06.2015, 23:07   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от MariaD Посмотреть сообщение
Код HTML:
<!-- loop "designs" -->
		<div class="mgdcwidget-item mgdcwidget-item-tariff-site mgdcwidget-item-tariff-shop"><div class="mgdcwidget-num">&nbsp;<span>{designs.id}</span></div>
		<div class="mgdcwidget-img"><a href="#!/mdp/design/{designs.id}">
			<img src="{url}" alt="" data-mgdcwidget-preview-src="{url}" data-mgdcwidget-preview-design-id="{designs.id}"></a></div><div class="mgdcwidget-pil clearfix"><a class="mgdcwidget-btn" href="#!/mdp/design/{designs.id}" data-mgdcwidget-design-id="{designs.id}">Посмотреть</a></div></div>
<!-- endloop -->
В шаблоне идёт обращение к url как к единичному значению – а это ж массив значений.
Потому нужно:
1. Привязать значения в $url к идентификатору из $design – это на этапе формировании массива $url.
2. В шаблоне обращаться к нужному элементу из url, используя идентификатор из design – что-то типа {url.design.id} – или как там это предусмотрено синтаксисом шаблонизатора.
Andkorol вне форума Ответить с цитированием
Старый 25.06.2015, 09:44   #5
MariaD
Пользователь
 
Аватар для MariaD
 
Регистрация: 10.01.2013
Сообщений: 56
По умолчанию

Цитата:
array_push($url,$s);
выдает 20 NULL


Цитата:
$url[] .= $s;
создает массив 20*20, а нужно просто 20

Цитата:
$url[$i]=$s;
$i++;
аналогично $url[]=$s;


Цитата:
В шаблоне идёт обращение к url как к единичному значению – а это ж массив значений.
Потому нужно:
1. Привязать значения в $url к идентификатору из $design – это на этапе формировании массива $url.
2. В шаблоне обращаться к нужному элементу из url, используя идентификатор из design – что-то типа {url.design.id} – или как там это предусмотрено синтаксисом шаблонизатора.
так и думала, но не знаю как это сделать
MariaD вне форума Ответить с цитированием
Старый 25.06.2015, 15:12   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Вообще не совсем понятно, зачем нужно разделять $designs и $url – если данные в $url напрямую зависят и привязаны исключительно к данным в $designs?
Тем более, что фактически именно оттуда они и берутся:
Цитата:
Сообщение от MariaD Посмотреть сообщение
PHP код:
foreach ($designs["designs"] as $post=>$value)
{
 
$s= (string) $value['images'][1][0]['url'];  
 
$url[]=$s;

Я вполне допускаю, что в шаблонизаторе сложно будет использовать для доступа к картинке конструкцию вроде {designs.images.1.0.url} – но это ж можно совсем просто обойти, создав новый элемент в массиве, для более простого и удобного доступа:
PHP код:
foreach ($designs["designs"] as $post => $value)
{
    
$designs["designs"][$post]['srcurl'] = $value['images'][1][0]['url']; 

Затем в шаблонизаторе работаем через designs:
Код HTML:
<!-- loop "designs" -->

    <img src="{designs.srcurl}" alt="" data-mgdcwidget-preview-src="{designs.srcurl}" data-mgdcwidget-preview-design-id="{designs.id}">

<!-- endloop -->
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вместо массива выводит большие отрицательные числа IgoreKMaN Общие вопросы C/C++ 1 31.03.2014 15:17
Вместо букв выводит не понятные символы IgoreKMaN Visual C++ 7 06.04.2013 17:54
Выводит пустую картинку при использовании в src http:// gunsoy PHP 7 26.08.2012 13:56
Как в С++ вместо черного фона вставить картинку. dani6 Общие вопросы C/C++ 1 26.01.2011 19:31