Как отправить данные формы через 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