Передать данные из одной страницы на другую
Есть такая вот форма:
<form method="GET" action="<?php echo $link_address;?>">
<input type="hidden" name="quantity" id="qntyt" value="1" min="1" />
<input type="hidden" name="hoursform" id="hoursf" value="<?php echo round( $pricing->hours ); ?>" min="1" />
<input type="hidden" name="priceform" id="pricef" value="<?php echo $pricing->total; ?>" />
<input type="hidden" name="addonform" id="addonf" value="<?php echo $addon->price; ?>" min="0" />
<input type="submit" value="Забронировать и оплатить" />
А перед ней вот такая таблица:
<table>
<tbody>
<tr>
<td><?php esc_html_e('Hours', 'routiz'); ?></td>
<td>✕ <span id="hoursprice"><?php echo round( $pricing->hours ); ?></span></td>
</tr>
<tr>
<td><?php esc_html_e('Price', 'routiz'); ?></td>
<td><span id="simpleprice"><?php echo $pricing->base; ?></span>₽</td>
</tr>
<tr>
<td><?php echo esc_html( $addon->name ); ?></td>
<td><span id="addonlprice"><?php echo $addon->price; ?>₽</td>
</tr>
<tr>
<td><?php echo esc_html( $pricing->payment_processing_name ); ?></td>
<td><?php echo (int) $payment_processing_percentage; ?>%</td>
</tr>
<tr>
<td><strong><?php esc_html_e('Total', 'routiz'); ?></strong></td>
<td><strong><span id="totalprice"><?php echo $pricing->total; ?></span>₽</strong></td>
</tr>
</tbody>
</table>
Форма должна отправлять данные из этой таблицы, но т.к поля input не "привязаны" к таблице - "чуда не происходит".
В итоге всем произвольным полям я задаю свои ID и "цепляю" их например из GET запроса, вида:
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
var foo = getParameterByName('hoursform');
var bar = getParameterByName('addonform');
var baz = getParameterByName('priceform');
var pricevalue = parseFloat(baz);
Пробовал так же через cookie:
$('#oplataaddon').on('submit', function() {
var cookievalue,
cookiepath;
cookievalue = $('span#totalprice').html();
cookiepath = "/";
document.cookie="var2=" + cookievalue + "; path=" + cookiepath;
});
И через приравнивание цены к = 1, а числа к "цене":
$('#oplataaddon').on('submit', function() {
var simplevalue = parseFloat($('span#simpleprice').text());
var addonvalue = parseFloat($('span#addonlprice').text());
if ( $('span#addonlprice').length > 0){
var addonan = addonvalue;
} else {
var addonan = 0;
}
Все три способа работают, но работают не так как нужно. Cookie "переписываются" после каждой отправки формы, GET запрос не отправляет форму (и естественно логично передаёт параметры в url из которых их можно забрать), а "костыль" с количеством и приравниванием его к цене не очень то вариант. Осталось только записывать все отправленные данные в БД? Верно я понимаю? Вариантов поизящнее нет? Нельзя ли отправлять POST запрос с формой и после отправлять уже GET, что бы передать данные в урл или что-то типа того?