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