Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 1080 Просмотров
*

Duff89

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Доп. поле со значением array
« : 28.12.2015, 23:12:09 »
Задача узнать значение доп. поля в к2. Делаю так:
Код
$extra_fields = json_decode($row->extra_fields );
$phones = $extra_fields[2]->value;//значение доп поля с id2
Все выводиться как нужно, но одно доп. поле почему-то всегда возвращает значение array.Тип поля - текстовое поле, ничем не отличается от других.В чем может быть причина?
Joomla! 3.4.5 K2 v2.6.9
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Доп. поле со значением array
« Ответ #1 : 28.12.2015, 23:26:06 »
Причина в том, что json_decode декодирует json-строку и возвращает (в вашем случае) объект, который может содержать массив (array). Странно, что вы задали такой вопрос, сумея при этом написать код преобразования json в PHP-переменную.
P.S. если я правильно понял, то значение данного поля представляет собой массив, и если вы делаете echo, то вы увидите на выходе array().
« Последнее редактирование: 28.12.2015, 23:37:21 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Duff89

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Доп. поле со значением array
« Ответ #2 : 28.12.2015, 23:32:01 »
Приведу кусок кода чуть больше
Код
$extra_fields = json_decode($row->extra_fields );
$phones = $extra_fields[2]->value;//возвращает номер телефона.все ок
$phones2 = $extra_fields[11]->value;// работает тоже
$phones3 = $extra_fields[12]->value;// работает тоже
$email = $extra_fields[3]->value;//работает тоже
$msgs = $extra_fields[4]->value;//нихрена не работает.возвращает array
Во всех полях ввожу только числа
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Доп. поле со значением array
« Ответ #3 : 28.12.2015, 23:38:37 »
Смотрите P.S. предыдущего поста и попробуйте делать
Код: php-brief
print_r($msgs);
Не будь паразитом, сделай что-нибудь самостоятельно!
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Доп. поле со значением array
« Ответ #4 : 28.12.2015, 23:42:09 »
var_dump($extra_fields[4]->value);
А лучше перебрать в цикле. У вас завтра поля добавятся/убавятся, ключи массива сменятся и это работать перестанет.
*

Duff89

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Доп. поле со значением array
« Ответ #5 : 29.12.2015, 00:05:40 »
Заранее извиняюсь, я не так силен в php как хотелось бы.
Правильно ли я делаю
Код
$debt = var_dump($extra_fields[4]->value);
Данный код ничего не выводит..
P.S. echo со старым кодом выводит array

Просто никак не могу понять почему значение одних полей выводятся без проблем, а другие никак
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Доп. поле со значением array
« Ответ #7 : 29.12.2015, 00:18:33 »
Код
$debt = var_dump($extra_fields[4]->value);
Данный код ничего не выводит..
Он и не должен ничего выводить.
Просто var_dump или print_r, и это только с целью дебажить код.
P.S. echo со старым кодом выводит array
Просто никак не могу понять почему значение одних полей выводятся без проблем, а другие никак
Еще раз
значение данного поля представляет собой массив, и если вы делаете echo, то вы увидите на выходе array().
Если после этого все равно не понимаете, то идите изучать PHP.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Duff89

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Доп. поле со значением array
« Ответ #8 : 29.12.2015, 02:49:39 »
Ситуация прояснилась в довольно интересную сторону.
Код
$extra_fields = json_decode($row->extra_fields );
$phones = $extra_fields[2]->value;//код работает.Возвращает реальное значение
$debt = $extra_fields[1]->value;//код работает.Возвращает реальное значение
$fio = $extra_fields[4]->value;//код не работает. Возвращает значение array
$email = $extra_fields[3]->value;//код работает.Возвращает реальное значение
Перепробовал кучу самых разных вариантов и пришел к выводу, что данный код нормально работает только для доп. полей с id: 1,2 или 3. доп.поле с id 4 и выше всегда возвращает значение array. Может кто подскажет из-за чего такое может быть?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Доп. поле со значением array
« Ответ #9 : 29.12.2015, 08:55:03 »
ТС, вы вообще читаете, что вам писали?
Последний раз: потому что значения этих полей являются массивами.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Duff89

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Доп. поле со значением array
« Ответ #10 : 29.12.2015, 10:06:32 »
Конечно читаю, то что мне пишут, спасибо большое за ответы. Но объясните как доп.поле(текстовое поле) с id3 возвращает реальное значения, а уже доп.поле(текстовое поле) с id4 и введеными в него теми же цифрами уже идет как массив.Просто хочется докопаться до причины.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Доп. поле со значением array
« Ответ #11 : 29.12.2015, 10:21:13 »
Но объясните как доп.поле(текстовое поле) с id3 возвращает реальное значения, а уже доп.поле(текстовое поле) с id4 и введеными в него теми же цифрами уже идет как массив.
Потому что одни данные записываются в БД как текст, другие - как массив. Еще почему? Потому что разработчик так хотел.
Ваше дело - обрабатывать данные в зависимости от их типов или переписать форму, чтобы эти данные имели нужный тип, а не задавать глуппые вопросы. Столько ответов, а вы все стоите на одном месте.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Duff89

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: Доп. поле со значением array
« Ответ #12 : 29.12.2015, 10:32:46 »
Странно конечно все это, но в принципе вопрос решен.Буду использовать только поля с id1,2,3.Всем спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительное поле Ссылка / Как изменить текст?

Автор designerandrey

Ответов: 6
Просмотров: 686
Последний ответ 20.07.2020, 16:56:57
от designerandrey
Заброс в БД для массового добавления значений в доп. поле k2

Автор lgmax

Ответов: 2
Просмотров: 735
Последний ответ 16.09.2019, 11:33:11
от beliyadm
Как включить полноценный редактор в доп. поле?

Автор bybus

Ответов: 0
Просмотров: 865
Последний ответ 24.11.2017, 13:28:18
от bybus
K2 убрать поле InfoText

Автор Dusk09

Ответов: 0
Просмотров: 788
Последний ответ 26.10.2017, 12:35:14
от Dusk09
1 доп. поле в нескольких групах

Автор terr

Ответов: 0
Просмотров: 767
Последний ответ 06.10.2016, 14:43:19
от terr