Nano Hash - криптовалюты, майнинг, программирование

Как отправить выбранную опцию на контроллер

Я создал следующий раскрывающийся список, а также условную проверку, которая выводит «блок» -> детали, связанные с параметрами. См. ниже, например:

function val(ddbox) {

         //NEW
        if ( ddbox.options[ddbox.selectedIndex].value == "Others"){
                document.getElementById("extradiv").style.display = "block";
        }else{
                document.getElementById("extradiv").style.display = "none";
        }
         if( ddbox.options[ddbox.selectedIndex].value != "Others"){
                document.getElementById("NumberChosen").style.display = "block";
        }else{
                document.getElementById("NumberChosen").style.display = "none";
        }
}
 <li class="bigfield">
                        <select name ="ddbox" id="ddbox" onchange = "val(this)">
                        <option value ="0"> Select Number..</option>
                        <option value ="Option 1"> 1</option>
                        <option value ="Option 2"> 2</option>
                        <option value ="Option 3"> 3</option>
                        <option value = "Others"> Others</option>
                        </select>
                </li>


                <!--when user select "Others"-->
                <div id = "extradiv" style ="display:none">
                <li class="bigfield"><input placeholder="Enter your Num" type="text" name="OthersNum" id="OthersNum"/></li>
                <li class="bigfield"><input placeholder="Number Characteristics" type="text" name="NumberOthersCharacteristics" id="NumberOthersCharacteristics"/></li>
                <li class="bigfield"><input placeholder="why do you like this number" type="text" name="NumberOthersLikefactor" id="NumberOthersLikefactor"/></li>
                 </div>

                 <!--when user select other options-->
                <div  id = "NumberChosen" style ="display:none" >
               <li class="bigfield"><input value="NumChosen" type="text" name="NumChosen" id="NumChosen" readonly></li>
                <li class="bigfield"><input value="Num Chosen Characteristic" type="text" name="NumChosenCharactersitics" id="NumChosenCharactersitics" readonly/></li>
                <li class="bigfield"><input value="Num Chosen Likes" type="text" name="NumChoseLikes" id="NumChoseLikes" readonly/></li>
                 </div>

Я сделал так, чтобы каждый выбранный параметр ссылался на детали в , и когда пользователь нажимает «Другие», он будет ссылаться на поле ввода в . Следовательно, форма поля выполняется в представлении структуры MVC.

Чтобы гарантировать, что при отправке и значения будут правильно отправлены POST в код контроллера, я сделал следующий журнал ошибок в коде контроллера, чтобы проверить значения, полученные из формы. Следующие error_logs, как показано:

       error_log(date("Y-m-d H:i:s")."_ipad,Num: ".$_POST['OthersNum']."\n",3,"/var/tmp/*/*.log");
       error_log(date("Y-m-d H:i:s")."_-ipad, NumChar: ".$_POST['NumberOthersCharacteristics']."\n",3,"/var/tmp/*/*.log");
       error_log(date("Y-m-d H:i:s")."_-ipad, NumLikes: ".$_POST['NumberOthersLikefactor']."\n",3,"/var/tmp/*/*.log");

       error_log(date("Y-m-d H:i:s")."_-ipad,NumberChosen: ".$_POST['NumChosen']."\n",3,"/var/tmp/*/*.log");
       error_log(date("Y-m-d H:i:s")."_-ipad, NumChosenChar: ".$_POST['NumChosenCharacteristics']."\n",3,"/var/tmp/*/*.log");           error_log(date("Y-m-d H:i:s")."_-ipad, NumChosenLikes: ".$_POST['NumChoseLikes']."\n",3,"/var/tmp/*/*.log");

Теперь это основная проблема, с которой я столкнулся, оба журнала ошибок всегда будут отображаться, когда я запускаю следующую команду терминала: 'tail -f *.log', например, если я выберу «Другие» в списке опций и введите ключ в соответствующие поля и отправьте форму, значения будут отправлены POST в код контроллера, а журнал ошибок не только покажет значения для «OthersNum», но также покажет детали NumChosen. Это не тот результат, который мне нужен, я просматриваю журнал ошибок, только публикую сведения, которые были введены для параметра «Другие», и не отображаю сведения, связанные с другими параметрами, а также

Следовательно, показан избыточный error_log, насколько я понимаю, все значения из формы отправляются POST в контроллер. Следовательно, как я могу отредактировать существующий код так, чтобы только выбранная выбранная опция была отправлена ​​POST на контроллер?


  • В чем проблема ? Вы не можете прочитать поля формы в запросе POST? 10.09.2015
  • @RayonDabre Проблема: когда я отправляю значения из полей формы в код контроллера, error_log публикует все детали, а не то, что я хочу. Я только хочу, чтобы в журнале ошибок публиковались сведения, связанные с выбранным списком выбора. На данный момент он публикует все, как я могу показать только детали того, что было выбрано в списке выбора 10.09.2015
  • Если вы не хотите, чтобы эти поля формы публиковались, вам нужно удалить их из DOM или установить их атрибут как disabled. Более того, вы можете просто поместить условие в свой php-код с выбранной соответствующей опцией. 10.09.2015
  • @RayonDabre, если бы я отключил эти поля, они не будут отображаться, даже если выбраны параметры для этих деталей. Мне нужно, чтобы детали отображались только при выборе опции. Условие в php-коде? например? 10.09.2015
  • вы можете играть с атрибутом в соответствии с выбором опции, как вы это делаете, чтобы отобразить детали. На стороне php вы можете просто проверить if($_POST['whatever_you_want']) 10.09.2015
  • @RayonDabre, но это будет означать, что на стороне контроллера он будет отображать детали, верно? 10.09.2015

Ответы:


1

Я думаю, что ваша проблема связана с оператором if, вы не хотите использовать несколько операторов if для одних и тех же условий, ваш оператор if должен быть,

function val(ddbox) {
        if ( ddbox.options[ddbox.selectedIndex].value == "Others"){
                document.getElementById("extradiv").style.display = "block";
               document.getElementById("NumberChosen").style.display = "none";
        }else{
                document.getElementById("extradiv").style.display = "none";
                document.getElementById("NumberChosen").style.display = "block";
        }
}

Используйте один оператор if для аналогичных условий, надеюсь, это сработает...

11.09.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..