0

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

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"); 

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

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

+0

В чем проблема? Не можете ли вы прочитать поля формы в запросе POST? – Rayon

+0

@RayonDabre Проблема: когда я отправляю значения из полей формы в код контроллера, error_log публикует все подробности, а не то, что я хочу. Я хочу, чтобы журнал ошибок публиковал информацию, связанную с выбранным списком выбора. На данный момент он публикует все, как я могу показывать только данные о том, что было выбрано в списке выбора. – EEE

+0

Если вы не хотите, чтобы эти поля формы были опубликованы, вам нужно удалить их из DOM или установить их атрибут «отключен». Моревер, вы можете просто поставить условие в свой php-код с выбранной опцией respctive. – Rayon

ответ

0

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

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"; 
     } 
} 

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

Смежные вопросы