Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   smarty + js + php (https://javascript.ru/forum/dom-window/79357-smarty-js-php.html)

ureech 28.01.2020 10:24

smarty + js + php
 
Всем привет. В смарте имею цикл
{foreach key=tid item = week from=$list_weeks}
{if $f == 1}{$week.a=$week.a1}{/if}
{$week.a} // 1
{$week.b} // 2
{$week.c}//  3

{/foreach}


В php параметр ['a'] выбирается из базы в зависимости от условия. Т.е.
if( $f == 1){$a = 'a1';}if( $f == 2){$a = 'a2';}if( $f == 3){$a = 'a3';}

Теперь в js мне нужно использовать {$week.a} в аяксе и в цикле.
function foo(){
$.ajax({
......
success : function (data) {
var res1 = [];
for(var i=0; i<data.length; i++) {
res1 += data[i].a+',';
}
});
}

И вот тут засада. res1 неопределена. Хотя аякс и возвращает массив с переменной [{а1:1,...}]. Если я подставляю в цикле
res1 += data[i].a1+',';

то всё работает. Как мне заставить работать скрипт? Пробовал в js условие задать перед foo(). типа
if(f==1)var a = '{$week.a1}';
,передав предварительно в смарт $f и определив её в js.
не выходит.

Nexus 28.01.2020 12:35

Почитайте:
https://developer.mozilla.org/ru/doc...cts/Array/push

Названия ключам лучше давать осмысленное.

ureech 28.01.2020 13:44

Цитата:

Сообщение от Nexus (Сообщение 519332)
Почитайте:
https://developer.mozilla.org/ru/doc...cts/Array/push

Названия ключам лучше давать осмысленное.

Это для примера.
Не понимаю что мне нужно объединить или добавить.

рони 28.01.2020 13:58

ureech,
Цитата:

Сообщение от ureech
res1 += data[i].a1+',';

бред какой-то ...
возможно вы хотели так ...
function (data)
{
   var res1 = Object.values(data[0]);
}

ureech 28.01.2020 14:11

Цитата:

Сообщение от рони (Сообщение 519335)
ureech,

бред какой-то ...
возможно вы хотели так ...
function (data)
{
   var res1 = Object.values(data[0]);
}

Возможно,но работает). Там data = [object Object]

ureech 28.01.2020 14:13

Nexus,
Спасибо за идею. Решил вопрос на стороне сервера. С php получше знаком).
Всем спасибо.

Vlasenko Fedor 28.01.2020 15:54

Цитата:

Сообщение от ureech
С php получше знаком

Цитата:

Сообщение от ureech
if( $f == 1){$a = 'a1';}if( $f == 2){$a = 'a2';}if( $f == 3){$a = 'a3';}

$a = "a$f";
:haha:


Часовой пояс GMT +3, время: 20:26.