За последние 24 часа нас посетили 20190 программистов и 1086 роботов. Сейчас ищут 784 программиста ...

Отправка данных методом POST из модального окна

Тема в разделе "JavaScript и AJAX", создана пользователем Flip, 29 май 2022.

  1. Flip

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

    С нами с:
    9 мар 2008
    Сообщения:
    42
    Симпатии:
    0
    Добрый вечер.

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

    Вот код формы:
    HTML:
    1. <div class="modal" aria-hidden="true">
    2.   <div class="modal-dialog">
    3.     <div class="modal-header">
    4.      <FORM ACTION="add.php" METHOD="POST" onsubmit="return validate_form(this)">
    5.       <h2>Добавить ссылку:</h2>
    6.     </div>
    7.     <div class="modal-body">
    8.       <p><input type="text" name="name1" value="" disabled="disabled" /></p>
    9.       <p><input type="text" name="name2"  /></p>
    10.       <p><input type="text" name="name3"  /></p>
    11.       <p><TEXTAREA NAME="name4" COLS=45 ROWS=5 style="resize: none;"  /></TEXTAREA></p>
    12.     </div>
    13.     <div class="modal-footer">
    14.       <button type="submit">Добавить</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    15.       <button class="closemodal">Закрыть</button>
    16.     </div>
    17.     </FORM>
    18.   </div>
    19. </div>
    20.  
    21. <script  src="popup.js"></script>
    22. <script  src="validate.js"></script>
    а вот сам файл add.php:
    PHP:
    1.  
    2.     $id1 = isset($_POST["name1"]);
    3.     $id2 = strip_tags(stripslashes(isset($_POST["name2"])));
    4.     $id3 = strip_tags(stripslashes(isset($_POST["name3"])));
    5.     $id4 = strip_tags(stripslashes(isset($_POST["name4"])));
    6.    
    7.     echo $id1;
    8.     echo $id2;
    9.     echo $id3;
     
  2. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    54
    Симпатии:
    1
    а почему бы вам не сделать такую функцию
    PHP:
    1. function clearInput($data)
    2. {
    3.     $data = trim($data);
    4.     $data = stripslashes($data);
    5.     $data = htmlspecialchars($data);
    6.     return $data;
    7. }
    и почему у вас в форме html метод и действие записано большими буквами?
     
  3. Flip

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

    С нами с:
    9 мар 2008
    Сообщения:
    42
    Симпатии:
    0
    возьму на заметку
    это я для себя ))))
     
  4. amberson

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

    С нами с:
    23 июл 2020
    Сообщения:
    61
    Симпатии:
    13
    isset возвращает логическое значение в данном случае отражающее было ли передано поле формы или нет. Оно пригодно для условий, но оно не содержит значения данного поля.
    PHP:
    1. $id2 = isset($_POST["name2"]) ? strip_tags(stripslashes($_POST["name2"])) : '';
     
  5. Flip

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

    С нами с:
    9 мар 2008
    Сообщения:
    42
    Симпатии:
    0
    @amberson, огромное спасибо! Так действительно работает.
    Остается разобраться с первой переменной, которая так и не хочет отображаться в add.php, хотя в самой форме я её вижу. Не подскажите, как её передать в php?
     
  6. MixazZz

    MixazZz Новичок

    С нами с:
    30 мар 2022
    Сообщения:
    54
    Симпатии:
    1
    Посмотрите хорошо, бывает самые бональные ошибки
     
  7. amberson

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

    С нами с:
    23 июл 2020
    Сообщения:
    61
    Симпатии:
    13
    @Flip, пожалуйста! С переменной name1 точно так же можно поступить, только убрав из html кода блокировку поля формы (disabled), иначе переменная не уйдет на сервер.
    HTML:
    1. <p><input type="text" name="name1" value="" /></p>
    PHP:
    1. $id1 = isset($_POST["name1"]) ? $_POST["name1"] : '';
     
  8. Flip

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

    С нами с:
    9 мар 2008
    Сообщения:
    42
    Симпатии:
    0
    Атрибут disabled:
    Блокирует доступ и изменение поля формы.....Заблокированное в поле значение не передается на сервер.

    Как же это я так? :rolleyes:

    Здорово, всё отлично работает!

    @MixazZz, @amberson спасибо вам огромное за помощь!