Как отправить данные формы через ajax без изменения url страницы

Следующая ситуация: у меня есть страница контрагента, на которой представлены его основные реквизиты, форма добавления спецификации, а также список спецификаций этого контрагента.

Я хочу организовать отправку спецификации (отправку данных конкретной формы) через ajax.

В настоящий момент отправка данных спецификации успешно работает, данные в базу данных записываются, из базы данных считываются.

Проблема заключается в том, что после отправки формы (ajax-запроса) страница перезагружается, а также передаёт все параметры из формы через GET в url текущей страницы. А так как у меня в url есть важная переменная inn, по которой отображаются все необходимые реквизиты соответственно - то после ajax-отправки данных я попадаю на страницу с несуществующим контрагентом.

Простите, что так сложно изложил.

/client.php?inn=3435127978 с этого url происходит ajax отправка

после отправки url становится таким:

/client.php?numbers=123&dates=2021-01-01&product=Щебень+фр.+5-20+мм+1+гр.&count= и так далее

соответственно, на странице у меня вот такой бардак [![введите сюда описание изображения][1]][1]

Код ajax отправки:

$("#formspec").on("submit", function(){
            var numbers = $('#numbers').val();
            var dates = $('#dates').val();
            var product = $('#product').val();
            var count = $('#count').val();
            var price = $('#price').val();
            var go = $('#go').val();
            var gp = $('#gp').val();
            var sposobd = $('#sposobd').val();
            var station = $('#station').val();
            var codestation = $('#codestation').val();
            var clientinn = $('#clientinn').val();
            var oplata = $('#oplata').val();
            var period = $('#period').val();
            
            $.ajax({
                type: "POST",
                url: "/handler/add_spec.php",
                cache: false,
                dataType: "json",
                data: {numbers:numbers, dates:dates, product:product, count:count, price:price, go:go, gp:gp, sposobd:sposobd, station:station, codestation:codestation, clientinn:clientinn, oplata:oplata, period:period}
            }).done(function(datas)
                {
                    alert(datas);
                });
        })

На сервере обрабатывается следующим образом

<?php

require_once( "соединение с бд" );

$data = $_POST;
//print_r($data);
$sql = "INSERT INTO таблица (inn, number, date, product, go, gp, count, price, period, sposob, stationdest, codestationdest, oplata) 
VALUES (:clientinn, :numbers, :dates, :product, :go, :gp, :count, :price, :period, :sposobd, :station, :codestation, :oplata )";

if (!isset($data)) {
    return json_encode("Ошибка, массив данных не поступил");
} else {
    $stmt = $dbh->prepare($sql);
    try {
        $stmt->execute($data);
        return json_encode("Спецификация успешно добавлена");
    } catch (PDOException $e) {
        return json_encode($e->getMessage());
    }
}

?>

Подскажите пожалуйста, как мне отправить данные формы через ajax без изменения текущего url страницы? [1]: https://i.stack.imgur.com/g3cQC.png


Ответы (0 шт):