скрыть поле если input пустой

Тема в разделе "JavaScript", создана пользователем gamera, 29 мар 2015.

Модераторы: ZiX
  1. gamera

    gamera Постоялец

    Регистр.:
    15 мар 2010
    Сообщения:
    117
    Симпатии:
    6
    Всем доброго времени суток, дамы и господа, подскажите пожалуйста, как скрыть поле если Input пустой. Схема такая, есть скрипт, который при нажатии на добавить поле добавляет поле в форму, сообственно вот он:
    Код:
    <script language="javascript">
    var itemss=1;
    var itemspo=10;
    function AddItem() {
      var div =document.getElementById("items");
      var button=document.getElementById("add");
      itemss++;
      itemspo++;
      var newitem="<label>Работал с-по: </label>";
    
      newitem+="<input type=\"text\" class=\"datepickerTimeField\" id=\"byear\" name=\"input_name[" + itemspo + "]\" placeholder=\"Работал с\" value=\"<?=substr(htmlspecialchars(trim($_POST['input_name'][" + itemspo + "])), 0, 500);?>\">&nbsp;";
    
      newitem+="-&nbsp;<input type=\"text\" class=\"datepickerTimeField\" id=\"byear\" placeholder=\"По\" name=\"item" + itemss;
      newitem+="\"><br>";
      var newnode=document.createElement("span");
      newnode.innerHTML=newitem;
      div.insertBefore(newnode,button);
      $('.datepickerTimeField',  newnode).datepicker();
    }
    </script>

    и потом все это дело отправялется на почту, вот код отправки на почту:
    Код:
    /*
    Выпадающие меню
    */
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][16].' - '.$_POST['input_name'][26].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][17].' - '.$_POST['input_name'][27].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][18].' - '.$_POST['input_name'][28].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][19].' - '.$_POST['input_name'][29].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][20].' - '.$_POST['input_name'][30].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][21].' - '.$_POST['input_name'][31].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][22].' - '.$_POST['input_name'][32].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][23].' - '.$_POST['input_name'][33].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][24].' - '.$_POST['input_name'][34].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][25].' - '.$_POST['input_name'][35].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][26].' - '.$_POST['input_name'][36].'<br />';
    
    $mess .= '<b>Работад с - по: </b>'.$_POST['input_name'][27].' - '.$_POST['input_name'][37].'<br />';
    
    /*
    /выпадающие меню
    */
    

    как сделать что если эти поля пустые то они не отправляются на почту( не показываются) чтобы на почту не приходило пустое Работал с -по:
     
  2. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    187
    Как один из вариантов
    PHP:
    if(!empty($_POST['input_name'][16])){$mess .= '<b>Работа с - по: </b>'.$_POST['input_name'][16].' - '.$_POST['input_name'][26].'<br />';}
     
  3. braindancer2

    braindancer2 Создатель

    Регистр.:
    14 мар 2014
    Сообщения:
    14
    Симпатии:
    5
    Я бы при сабмите формы просто вешал disabled="disabled" аттрибут на поля, в которых значение не валидируется (пустое, например). Disabled поля в POST параметры переданы не будут.
     
  4. o2relax

    o2relax Создатель

    Регистр.:
    18 мар 2015
    Сообщения:
    13
    Симпатии:
    2
    на яваскрипт полагаться не стоит

    не обращайтесь напрямую к массиву пост. используйте хотя бы filter_input
    https://php.net/manual/en/function.filter-input.php
     
    Последнее редактирование модератором: 4 апр 2015
  5. braindancer2

    braindancer2 Создатель

    Регистр.:
    14 мар 2014
    Сообщения:
    14
    Симпатии:
    5
    Отличное замечание, если учесть что emails формируются из чистого $_POST['field']. Полагаю, что вопрос о безопасности тут стоит где-то в конце.