Ajax - перезагрузка страницы при отправке с jquery - PullRequest
1 голос
/ 17 апреля 2020

У меня есть простой интернет-магазин, и я пытаюсь добавить несколько вариантов доставки. Есть два варианта, и я хочу сохранить вариант, выбранный клиентом в сеансе (или, альтернативно, повар ie).

Сценарий php, кажется, работает сам по себе, но приводит к перезагрузке страницы, поэтому я пытался реализовать ajax, используя jquery для отправки данных, но либо код не выполняется, либо страница перезагружается.

Я попытался выполнить несколько ответов, включая замену button на type="submit", но это приводит к тому, что код вообще не выполняется. Добавление 'click' к .on запускает код, но также приводит к перезагрузке. Я проверил консоль и не вижу никаких проблем. Спасибо за любую помощь.

jQuery

$(function(){
   $('#shipping_form').on('submit', function(e){
      e.preventDefault();

      var ship = $('input[name="shipping_val"]').val();
      $.ajax({
         type: 'GET',
         data: { discount: ship },
         success: function(data) {
            //go to next section
         }
      });
      return false;
   });
});

HTML / PHP

<?php
Session_start();
if(isset($_GET['shipping_submit'])){
  $shipping_get = $_GET['shipping_val'];
}else{
  $shipping_get = '3.99';
}
$_SESSION['shipping'] = $shipping_get ;

?>
<html>
<main class="container">


<form method="GET" name="shipping_form" id="shipping_form" action="">
  <p>Please choose your prefered shipping method.</p>
    <input type="radio" name="shipping_val" value="3.99" checked>
    <label for="shipping_val">
      Standard delivery
    </label>
    <input type="radio" name="shipping_val" value="6.99" >
    <label for="shipping_val">
      Express delivery
    </label>

    <button type="submit" id="shipping_submit" name="shipping_submit" >Update</button>
    <?php
    echo '<h1>' . $_SESSION['shipping'] . '</h1>';
    ?>
</form>```

1 Ответ

0 голосов
/ 17 апреля 2020

Возможно, ваша проблема в том, что вы используете AJAX для отправки данных в тот же файл, из которого вы их вызываете. Ваша конечная точка ajax (сторона PHP) должна быть другим файлом PHP.

См. Этот другой вопрос:

значения не обновляются после ajax ответ

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