Как отсортировать цикл PHP без обновления страницы с помощью JQUERY

Я пытаюсь отправить переменные с помощью ajax на php-страницу, поэтому, когда я нажимаю кнопку, отправленная переменная будет обновляться на странице без ее обновления.

У меня есть кнопка под названием #toshow, и при нажатии она отправит ?show=okay в качестве сообщения.

$('#toshow' ).click( function( e ) {
  $.post('?show=okay')
  .done(function(data) {
  });
});

и на моем php

if (isset($_POST['show']) && $_POST['show']) {
  echo $_POST['show'];
}

Я нажимаю кнопку, но она не показывает текст «хорошо». Что еще мне нужно добавить, чтобы это заработало?

Спасибо!

🤔 А знаете ли вы, что...
JavaScript поддерживает работу с различными форматами данных, такими как JSON и XML.


132
2

Ответы:

Решено

Все, что вы печатаете с помощью echo в PHP, будет доступно (если не произойдет ошибка) в переменной JavaScript data в обратном вызове функции .done(). Поэтому вам нужно реализовать этот обратный вызов для отображения возвращаемого текста там, где он вам нужен.

Пример:

.done(function(data) {
    document.write(data);
});

Кроме того, способ отправки параметра show на сервер (как часть URL-адреса) — это метод GET, а не POST. Если вы хотите использовать метод POST, передайте данные в качестве второго аргумента функции $.post():

$.post('', {
    show: 'okay'
})
    .done(...)

Вы отправляете переменную «show» в части запроса URL-адреса, затем вы должны получить ее из глобальной переменной $_GET... проверить...

$('#toshow' ).click( function( e ) {
  $.post('', {"show": "okay"})
  .done(function(data) {
      console.info(data);
  });
});

https://api.jquery.com/jquery.post/#jQuery-post-url-data-success-dataType