We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 23146
    • 0 Posts
    благодарю за быстрый ответ, но не помогло пока.

    насколько я понимаю вы при сабмите берете значение из select и присваиваете его скрытому полю input

    если в форме присутствует конструкция eform="::0::" - возникает ошибка modx указанная выше.

    если переношу по вашему методу в поле input но убираю eform="::0::" - пишет "[undefined] » Выявлена попытка подделки!"
      • 5675
      • 120 Posts
      Он так и будет писать про попытку подделки, он не может жить с несваренными данными, только через скрытые поля с eform="::0::"

      Проверьте еще раз, точно ли вы так делаете и присваивается ли скриптом параметр? Если что приведен Jquery, как это делается на голом JS - понятия не имею, я только на Jquery пишу

      Естественно, при таком подходе SELECT не имеет вообще атрибута eform=...
        Автор благодарит алфавит за любезно предоставленные буквы
        • 23146
        • 0 Posts
        делаю так:

        <form method="post" enctype="multipart/form-data" action="[~[*id*]~]" id="CarAssessmentForm" style="margin-left: 25px" name="ssearch" onsubmit="$('#modelselect').val($('#model').val()); $('#model').remove()">
        
        <input type="hidden" id="modelselect" name="modelselect" eform="::0::" value="" />
        
        <select name="model" id="model">
          <option selected="" value="0">Выберете модель</option>
        </select>
        


        я думаю тут дело не в java и полях, а проблема или с php (у меня кстати PHP Version 5.3.6) или с eForm.
        как только я вставляю параметр eform="::0::" или eform="::0::#EVAL return true;" в любое поле - получаю одну и туже ошибку:

        Error: strpos() expects parameter 1 to be string, array given
        File: /usr/local/www/data/car-company.ru/assets/snippets/eform/eform.inc.php
        Line 324 source: $patharray = explode(((strpos($value,"/")===false)? "\\":"/"), $value);
          • 23146
          • 0 Posts
          2 Comicz

          поправочка... eform="::0::" - вызывает ошибку не влюбом месте формы, а только в этом конкретном селекте или скрытом инпуте.

          чтение и гугление сказало, что такая ошибка получается если в переменной находится массив, а не строковое значение как ожидается.

          значит возвращаюсь к java. значение в селект ложится такой функцией:
          function SearchModels() {
                  //  short cut
                  var fsel = document.ssearch.mark;
                  var msel = document.ssearch.model;
                  //  id
                  firmid = fsel.options[ fsel.selectedIndex ].value;
                  msel.length = 0;
                  msel.options[ 0 ] = new Option(' ', '');
                  msel.options[ 0 ].selected = true;
                  if ( firmid != 0 ) {
                          //
                          for(i=0; i<FirmsModels[ firmid ].length - 1; i++) {
                                  str = FirmsModels[ firmid ][ i ];
                                  msel.options[ i+1 ] = new Option ( str, str);
                          }
                  }
          }
          


          один из массивов из которых берутся значения:

          FirmsModels['УАЗ'] = new Array('2206', '2206-69', '220602', '22069', '2360', '23602', '2362', '2746', '3102', '3150', '3151', '31512', '31512-010', '31512-027', '31512-031', '31514', '31514-010', '31514-012', '31514-031', '31514-032', '315143', '31519', '31519-010', '31519-012', '31519-031', '31519-095', '31519-195', '315195 Hunter', '3153', '3159', '3160', '31622', '3163 Patriot', '3165', '3215', '322132', '32214', '3303', '330302', '33035', '330362', '33039', '3309', '3692', '3741', '374102', '3909', '390902', '39094', '390942', '39095', '39095', '390992', '3962', '39625', '396252', '396252-03', '39629', '451', '451', '452', '452', '452А', '452Д', '459', '460', '462', '469', '');
          


          в форме селект работает, при выборе марки, корректно подгружаются значения, но вот при отправке - неудача.

          вы говорили можете показать как сделать на jQuery? буду признателен, может получится переделать..
            • 5675
            • 120 Posts
            У меня в селект выдаются OPTIONы с помощью Ditto - вот так выводится каталог авто? я там не использую JS. Потом тупо select убивается а выбранное значение передается в hidden-поле

            <form method="post" action="[~[*id*]~]" id="CreditForm" onsubmit="$('#auto').val($('#autoselect').val()); $('#autoselect').remove()">
            ...
            <select name="autoselect" id="autoselect" class="text" /><option value="Выберите" selected="selected">Выберите</option>{{car-select}}</select>
            <input type="hidden" id="auto" name="auto" eform="::0::" value="" />
            ...
            <submit /></form>


            Чанк car-select
            [[Ditto?tpl=`carselect`]]


            Чанк carselect
            <option value="[+name+]">[+name+]</option>


            Зачем генерить select в JS я не очень понял, вот что
              Автор благодарит алфавит за любезно предоставленные буквы