51 Отредактировано Андрей (22.07.2016 11:21:57)

Re: Редактирование полей

Поправите?

        if (isset($_POST['userfields_arr'])){ //Если нужное поле пришло из запроса
          $myarray = array(
             'userfields_arr' => $_POST['userfields_arr']
          );
            $order['userfields'] = serialize($myarray);
          foreach ( $myarray as $key => $value ) {
              $userfields_arr = $order['userfields'];
            
          }
       
        }

Повысить оценку Понизить оценку

Re: Редактирование полей

Андрей надо подтянуть знания по формам и работе с массивами. smile

if (isset($_POST['userfields_arr'])){ //Если нужное поле пришло из запроса
   $order['userfields'] = serialize($_POST['userfields_arr']);   
}

Вот и всё.

53

Re: Редактирование полей

ну у меня выводит array в input sad

Повысить оценку Понизить оценку

54 Отредактировано Закусило Александр (22.07.2016 12:00:40)

Re: Редактирование полей

Так обратитесь к конкретному полю массива. Посмотрите, что у Вас выводит var_dump в шаблоне.
http://poleshuk.ru/massivy-v-php-rabota … ami-v-php/
http://i-vd.org.ru/books/php/arrays.shtml
https://yandex.ru/video/search?text=%D1 … %D0%B2+PHP

55

Re: Редактирование полей

array(1) {
  ["current_val"]=>
  array(2) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "12"
  }
}
array(1) {
  ["current_val"]=>
  array(2) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "12"
  }
}

Повысить оценку Понизить оценку

Re: Редактирование полей

Соответственно В ДАННОМ СЛУЧАЕ:
Первое поле:
{$order.userfields_arr.current_val[0]}

А второе поле:
{$order.userfields_arr.current_val[1]}

57 Отредактировано Андрей (22.07.2016 13:26:30)

Re: Редактирование полей

Не работает по прежнему. После обновления страницы едет верстка. ошибки не показываются

                            {assign var=fm value=$elem->getFieldsManager()}
                            {foreach from=$fm->getStructure() item=item}
                                <tr class="{cycle values=$hl name="order"}">
                                    <td class="otitle">{$item.title}</td><td><input type="text" name="userfields_arr[0]" value="{$elem.userfields_arr.current_val[0]}" class="maxWidth"></td>
                                    <pre>{var_dump($elem.userfields_arr)}</pre>
                                    <!--<td>{$item.current_val}</td>-->
                                </tr>
                            {/foreach}

http://storage2.static.itmages.ru/i/16/0722/s_1469178010_9705198_008dc41ee4.png

Повысить оценку Понизить оценку

Re: Редактирование полей

Вы информацию о том, что делаете даёте порционно.
Посмотрите, что за ошибки в исходном коде страницы, предварительно включив отображение ошибок.

http://readyscript.ru/faq/#faq-errors

Вы же специалист. За Вас программировать никто не будет. Я могу лишь подсказать.
Ато получается, что я за Вас программирую, а не Вы, а делать нужно Вам, а не мне. Если Вы встретили "затык", тогда обращайтесь помогу. Ато Вы даже не подумали, а сразу пишите. Так дело не пойдёт. Придётся Вам тоже приложить усилия.

59 Отредактировано Андрей (22.07.2016 14:47:47)

Re: Редактирование полей

Сделал так, но соответственно выводится 4 поля, их выносить вне foreach?

<td class="otitle">{$item.title}</td><td><input type="text" name="userfields_arr[]" value="{$elem.userfields_arr[0]}" class="maxWidth"></td>
                                    <td class="otitle">{$item.title}</td><td><input type="text" name="userfields_arr[]" value="{$elem.userfields_arr[1]}" class="maxWidth"></td>

Повысить оценку Понизить оценку

Re: Редактирование полей

Что вы имеете ввиду под "их выносить вне foreach?"

61 Отредактировано Андрей (22.07.2016 16:31:31)

Re: Редактирование полей

вместо

                            {foreach from=$fm->getStructure() item=item}
                                <tr class="{cycle values=$hl name="order"}">
                                    <td>{$item.current_val}</td>
                                </tr>
                            {/foreach}

вставить это?

<td class="otitle">1</td><td><input type="text" name="userfields_arr[]" value="{$elem.userfields_arr[0]}" class="maxWidth"></td>
                                    <td class="otitle">2</td><td><input type="text" name="userfields_arr[]" value="{$elem.userfields_arr[1]}" class="maxWidth"></td>

Повысить оценку Понизить оценку

Re: Редактирование полей

Лучше оставить наверное второй вариант. Однако лучше если аттрибуты name были бы более правильные. Я имею ввиду, у вас сейчас name такой:

name="userfields_arr[]"

А правильно было бы указывать более точный элемент массива. Т.е. чтобы было не 0, 1 и т.д., а конкретно наименование поля name, которое Вы указывали при создании полей в настройках модуля магазин. Там где у Вас было "Идентификатор".
На например:

name="userfields_arr[current_val]"

Тогда будет в итоге ассоциативный массив и 100% попадание в нужное поле. Т.к. 0,1 рождает иногда неоднозначность.

63 Отредактировано Андрей (22.07.2016 17:30:43)

Re: Редактирование полей

Спасибо Вам большое!
Так значит если я впишу эти поля вне foreach, ничего, можно так оставить?

Повысить оценку Понизить оценку

Re: Редактирование полей

Да. Это не запрещено. Не за что. smile

Re: Редактирование полей

Ну если у Вас в $elem объект заказа, то почему Вы делаете обращение через в value как $item.. У Вас оно в $elem или $item?

66 Отредактировано Андрей (25.07.2016 14:15:07)

Re: Редактирование полей

Нужно было так записать

value="{$elem.userfields_arr['test']}

и все работает smile

Повысить оценку Понизить оценку