За последние 24 часа нас посетили 21797 программистов и 1690 роботов. Сейчас ищут 1868 программистов ...

Как получить значение disabled поля?

Тема в разделе "HTML и CSS", создана пользователем maestro0728, 29 дек 2015.

  1. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Здравствуйте. Помогите разобраться есть код, но он почему то при добавлении параметра для поля <input disabled> или <select type="text" disabled> данные не заносятся в бд, появляется ошибка что поле пустое. Если я убираю опцию disabled все хорошо работает. До того как полетел винт данный код у меня работал может я, что то еще делал но не помню. Вот сам код:
    Код (PHP):
    1. <?php
    2. include "config.php";
    3. ?>
    4. [url="index.php"] Back[/url]
    5. <?php
    6. if(isset($_POST['bts'])):
    7.   if($_POST['nm']!=null && $_POST['gd']!=null && $_POST['tl']!=null  && $_POST['ar']!=null){
    8.      $stmt = $mysqli->prepare("INSERT INTO personal(name,gender,telp,address) VALUES (?,?,?,?)");
    9.      $stmt->bind_param('ssss', $nm, $gd, $tl, $ar);
    10.  
    11.      $nm = $_POST['nm'];
    12.      $gd = $_POST['gd'];
    13.      $tl = $_POST['tl'];
    14.      $ar = $_POST['ar'];
    15.  
    16.      if($stmt->execute()):
    17. ?>
    18. <p></p>
    19. <div class="alert alert-success alert-dismissible" role="alert">
    20.   <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
    21.   <strong>Berhasil!</strong> Silahkan tambah lagi, jika ingin keluar klik [url="index.php"]Home[/url].
    22. </div>
    23. <?php
    24.      else:
    25. ?>
    26. <p></p>
    27. <div class="alert alert-danger alert-dismissible" role="alert">
    28.   <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
    29.   <strong>Gagal!</strong> Gagal total, Silahkan coba lagi!!!.<?php echo $stmt->error; ?>
    30. </div>
    31. <?php
    32.      endif;
    33.   } else{
    34. ?>
    35. <p></p>
    36. <div class="alert alert-warning alert-dismissible" role="alert">
    37.   <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
    38.   <strong>Gagal!</strong> Form tidak boleh kosong, tolong diisi.
    39. </div>
    40. <?php
    41.   }
    42. endif;
    43. ?>
    44.  
    45.         <p><br/></p>
    46.         <div class="panel panel-default">
    47.           <div class="panel-body">
    48.           
    49.         <form role="form" method="post">
    50.           <div class="form-group">
    51.             <label for="nm">Name</label>
    52.             <input type="text" class="form-control" name="nm" id="nm" placeholder="Enter Name">
    53.           </div>
    54.           <div class="form-group">
    55.             <label for="gd">Gender</label>
    56.             <select class="form-control" id="gd" name="gd" disabled>
    57.               <option>Female</option>
    58.               <option>Male</option>
    59.             </select>
    60.           </div>
    61.           <div class="form-group">
    62.             <label for="tl">Phone</label>
    63.             <input type="tel" class="form-control" name="tl" id="tl" placeholder="Enter Phone">
    64.           </div>
    65.           <div class="form-group">
    66.             <label for="ar">Address</label>
    67.             <textarea class="form-control" name="ar" id="ar" rows="3"></textarea>
    68.           </div>
    69.           <button type="submit" name="bts" class="btn btn-default">Submit</button>
    70.         </form>
    Так чтобы было понятнее вот в этом участке кода в поле <select disabled>:
    Код (PHP):
    1. <div class="form-group">
    2. <label for="gd">Gender</label>
    3. <select class="form-control" id="gd" name="gd" disabled>
    4. <option>Female</option>
    5. <option>Male</option>
    6. </select>
    7. </div>
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.


    Тема переименована. Старое название "Сохранение неактивного поля в БД".
          — модераторъ
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Это все хорошо ошибка вот такая:
    но когда я убираю disabled в select все прекрасно работает.

    Код (PHP):
    1. <?php
    2. include "config.php";
    3.  
    4. ?>
    5. [url="index.php"] Back[/url]
    6. <?php
    7. if(isset($_POST['bts'])):
    8.   if($_POST['nm']!=null && $_POST['gd']!=null && $_POST['tl']!=null  && $_POST['ar']!=null){
    9.      $stmt = $mysqli->prepare("INSERT INTO personal(name,gender,telp,address) VALUES (?,?,?,?)");
    10.      $stmt->bind_param('ssss', $nm, $gd, $tl, $ar);
    11.  
    12.      $nm = $_POST['nm'];
    13.      $gd = $_POST['gd'];
    14.      $tl = $_POST['tl'];
    15.      $ar = $_POST['ar'];
    16.  
    17.      if($stmt->execute()):
    18. ?>
    Вот на эту строку ругается она в коде восьмая
    Код (PHP):
    1.  if($_POST['nm']!=null && $_POST['gd']!=null && $_POST['tl']!=null  && $_POST['ar']!=null){ 
    .
    Ругается на $_POST['gd']
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Re: Сохранение неактивного поля в БД

    Потому что браузер так работает. Disabled не отсылаются.
     
  5. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Re: Сохранение неактивного поля в БД

    Так ранее то работало. Что я мог сделать ранее то что поле было не активное и отсылалось.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Re: Сохранение неактивного поля в БД

    Работало? Дануна!
    http://stackoverflow.com/questions/7357256/disabled-form-in ... he-request

    Возможно твой выход это "readonly" вместо "disabled". Ну или работай со значениями по умолчанию, когда какие-то поля не получены.
     
  7. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Re: Сохранение неактивного поля в БД

    Вот я сам о том же забыл как я это делал.
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Re: Сохранение неактивного поля в БД

    Это из серии "когда я был большой".

    Добавлено спустя 1 минуту 46 секунд:
    Сегодня на форуме день упорных заблуждений :) Ни в какую не признают правила игры.
     
  9. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Re: Сохранение неактивного поля в БД

    я обязательно вспомню так как у меня мой сайт надо возобновлять. А пока прошу помощи и варианты.
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Сохранение неактивного поля в БД

    readonly советуют, попробуй
     
  11. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Re: Сохранение неактивного поля в БД

    поле hidden убирает вообще с экрана, а у меня оно отоброжалось как неактивное. в поле input отображалась текущая дата и время и оно было не активное, также поле select статус заявки тоже было не активно внём стояло состояние заказа "Принят", и форма отправлялась.
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Re: Сохранение неактивного поля в БД

    Скорей даже упоротых, а не упорных.
     
  13. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Re: Сохранение неактивного поля в БД

    artoodetoo это ты не прав
    Добавлено спустя 27 секунд:
    и это тоже
     
  14. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Re: Сохранение неактивного поля в БД

    Хорошо, когда сделаешь — покажешь. А пока я побуду прав.
    Ты получил годный совет, но предпочитаешь держаться за иллюзии и биться башкой об стену. Это твоё право.

    Прошу только объяснить почему ты разместил тему в разделе "PHP и базы данных". Если не сможешь, я перенесу в "HTML и CSS". По моему нескромному мнению речь идет о работе форм html.
     
  15. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Re: Сохранение неактивного поля в БД

    здесь присутствует код который делает запись в бд при заполненных полях.
     
  16. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Re: Сохранение неактивного поля в БД

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

    Я предлагаю следующие вариант.
    - Указать и проверить в коде обязательные поля в форме.
    - Необязательным полям выдать дефолт значение.

    Ещё второй вариант.
    С помощью javascript собирать данные по форме и sumbit их. Это в том случае, если важно что бы input был disabled у пользователя, но данные внутри него важны и должны быть переданы серверу.
     
  17. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Re: Сохранение неактивного поля в БД

    незачёт. почти 100% веб-скриптов работают с базой. но ты задаешь вопрос "почему дисаблед поля не приходят и как выкрутиться", это очевидно не имеет отношения к базам данных.
    ты опять не согласен?
     
  18. maestro0728

    maestro0728 Новичок

    С нами с:
    28 дек 2015
    Сообщения:
    27
    Симпатии:
    0
    Re: Сохранение неактивного поля в БД

    lastdays: Помогите примером
     
  19. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Код (PHP):
    1. <?php
    2. //-
    3. if ( isset( $_POST["user"], $_POST["test"], $_POST["sex"]) )
    4. {
    5.    var_export($_POST);
    6. }
    7.  
    8. $html = '
    9. <form action="?" method="post" id="form">
    10. <div> user: <input type="text" name="user" value="Vasya">  </div>
    11. <div> test: <input type="text" name="test" value="test" disabled>  </div>
    12. <div> test: <select name="sex" disabled><option>female</option><option>male</option></select> </div>
    13. <input type="submit" id="myform">
    14. </form>
    15. ';
    16.  
    17. print $html;
    18. unset($html);
    19.  
    20. ?>
    21. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    22.  
    23. <script type="text/javascript">
    24.   $(document).ready(function(){
    25.     $("#myform").click(function() {
    26.         event.preventDefault();
    27.  
    28.         $("input").attr("disabled", "");
    29.         $("select").attr("disabled", "");
    30.  
    31.         $('#form').submit();
    32.     });
    33.   });
    34.  
    35. </script>
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.