За последние 24 часа нас посетил 18921 программист и 1636 роботов. Сейчас ищут 955 программистов ...

Отправка формы работает не правильно

Тема в разделе "PHP для новичков", создана пользователем _ne_scaju_, 31 мар 2021.

  1. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    Так добавьте.
     
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    давай еще раз для каждого поля добавить переменную сессии или одно поле скрытое с хешем которое будем проверять?
     
  3. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.504
    Симпатии:
    283
    Да можно и одну переменную. Два в одной. $id.$text
     
  4. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    940
    Симпатии:
    145
    Касательно исходного поста, разве нельзя добавить переменную
    Код (Javascript):
    1. canSend = true;
    , а потом в onclick или где там отсыльщик, сделать так:
    Код (Javascript):
    1. if (canSend) {
    2.     canSend = false;
    3.     // тут остальные пертурбации
    4. }
    Не верю я, что такая проверка дубль пропустит.
    И, если там не просто onclick, а onsubmit, везвращать false ещё.
     
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    #30 TeslaFeo, 7 апр 2021
    Последнее редактирование: 7 апр 2021
  6. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    знаю что работает, но мне не так нужно, вот допустим пользователь допустил в двух полях ошибку, а кнопка заблокировалась, и чтобы отправить форму нужно обновить страницу и опять же заполнить все поля все заново, а если опять допустил ошибку, а кнопка уже заблокирована, что же делать.
    А вот добавь еще проверку поля что его обязательно заполнять, проверь empty($_POST['"qwe'])
    --- Добавлено ---
    ты показал элементарную проверку, покажи пример вместе с ajax запросом как он работать будет, спасибо.
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Кому еще интересно привожу пример своего js скрипта который отвечает за отправку формы, а далее если есть желание помучать себя сделать так чтобы он блокировал отправку повторную попробуйте исправить, спасибо:
    Код (Javascript):
    1. $('body').on('submit', 'form', function(e) {
    2.     // блокируем кнопку при отправке формы ( моя попытка предотвратить отправку )
    3.     // $('input[type=submit]', $(this)).prop( 'disabled', true );
    4.  
    5.     e.preventDefault();          // отменяем действие по умолчанию (отправку формы)
    6.     $('.errorPanel').remove();      // очищаем вывод error
    7.     $('.successPanel').remove(); // очищаем вывод success
    8.  
    9.     // объявим переменную для хранения объекта представляющего данные HTML формы
    10.     var form = $('form')[0];
    11.     var formData = new FormData(form);
    12.  
    13.     $.ajax({
    14.     url: $(this).attr('action'),
    15.     type: $(this).attr('method'),
    16.     data: formData,
    17.     contentType: false,
    18.     processData: false,
    19.     dataType: 'json',
    20.         success: function(json)
    21.         {
    22.             // если json.error не равен undefined выводим ошибки (сообщения)
    23.             if (json.error != undefined) {
    24.                 $('.msg').prepend('<div class="errorPanel alert alert-danger alert-dismissible"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>' + json.error + '</div>');
    25.             }
    26.  
    27.             // если elements не равен undefined, переходим к след. проверке
    28.             if (json.elements != undefined) {
    29.                 // если elements.success не равен undefined выводим сообщение об удачном выполнении
    30.                 if (json.elements.success != undefined) {
    31.                     // prepend - html, который будет добавлен в начало выбранных элементов.
    32.                     $('.msg' ).prepend( '<div class="successPanel alert alert-success alert-dismissible"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>' + json.elements.success + '</div>');
    33.                 }
    34.                 // если elements.url не равен undefined редиректим после удачного выполнения success через 2 сек.
    35.                 if (json.elements.url != undefined) {
    36.                     setTimeout(function() { window.location.href = json.elements.url; }, 2000 );
    37.                 }
    38.             }
    39.  
    40.             // если json.url не равен undefined редиректим на нужную страницу
    41.             if (json.url != undefined) {
    42.                 window.location.href = json.url;
    43.             }
    44.         } // end success
    45.     }); // end $.ajax({
    46. }); // end function
    Может вы подставите свои данные проверки, которые у вас работают, а я погляжу, спасибо.