PHP-код не работает вместе с функцией JS на «onclick» - PullRequest
0 голосов
/ 06 июня 2018

У меня есть кнопка, в которой я хочу выполнить 2 задачи;PHP и JS.PHP часть: генерировать новый текст каждый раз, когда нажимается кнопка.Часть js: отключение кнопки на 5 секунд и ее последующее включение.

HTML

 <button onclick = "disable();"  class=btnGenerate type="submit" id="submit" name="submit" >GENERATE</button>

PHP

if(isset($_POST['submit'])){
$num=mt_rand(1,10);
$result=mysqli_query($con,"SELECT * from quote_table where id=$num");
$row = $result->fetch_assoc();}

JS

 <script>
function disable(){
  document.getElementById("submit").disabled = true;
  setTimeout(function() { enable(); }, 5000);    }

function enable(){
  document.getElementById("submit").disabled = false;
}</script>

Часть PHP работает только тогда, когда я удаляю "onclick =" disable (); " в html, но это действительно таккажется, работает, когда я его добавляю. Может ли кнопка выполнять PHP и JS одним щелчком мыши? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Если вы инициируете отправку формы, если вы не используете AJAX, страница просто перезагрузится, что сделает спор по методу enable(), если вы не используете его для повторного включения кнопки в случае сбоя или при успешном возврате данныхчерез AJAX.

Мне кажется, что вы пытаетесь получить данные через запрос к серверу, не перезагружая страницу, а затем снова включите кнопку отправки после того, как данные будут возвращены.В этом случае вам нужно использовать AJAX.

HTML

<form action="/" method="post" id="form">
  <button class=btnGenerate type="submit" id="submit" name="submit" >GENERATE</button>
</form>

JS

<script>
document.getElementById('submit').addEventListener('click', function(event){
  event.preventDefault(); // prevents browser from submitting form
  var form = document.getElementById('form');
  var submit = document.getElementById('submit');
  // using JQuery ajax
  $.ajax(form.action, {
    data: form.serialize(),
    beforeSend: function() { // runs before ajax call made
      // disable submit button
      submit.disabled = true;
    },
    success: function(response) {
      console.log(response);
      // deal your return data here
    },
    error: function(error) {
      console.log(error);
      // deal with error
    },
    complete: function() { // runs when ajax call fully complete
      // renable submit button
      submit.disabled = false;
    }
  });
});
</script>
0 голосов
/ 06 июня 2018

Отключенная кнопка не может быть успешным элементом управления.

Не зависит от имени / значения кнопки отправки, отправляемой в данных формы, если вы собираетесь отключить ее.

Заменить isset($_POST['submit']) другим условием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...