Я использую функции jQuery serialize () и window.open для передачи данных форм на другую страницу, которая будет распечатывать файл на основе этих данных.
Перед перенаправлением URL выглядит нормально (консоль зарегистрировала сериализованный URL):
renter_postal_address%5D=×%5Bstart_date%5D=17.06.2019×%5Bstart_hours%5D=10×%5Bstart_minutes%5D=56×%5Bend_date%5D=17.06.2019×%5Bend_hours%5D=11×%5Bend_minutes%5D=56
После того, как я попал на нужную страницу, URL выглядит так (только в IE):
renter_postal_address%5D=×%5Bstart_date%5D=17.06.2019×%5Bstart_hours%5D=10×%5Bstart_minutes%5D=56×%5Bend_date%5D=17.06.2019×%5Bend_hours%5D=11×%5Bend_minutes%5D=56
URL в Google Chrome:
?act=rent.fillBookingContractTemplate&item_id=1&data=action=issue_item&item_id=&data%5Bcontract_no%5D=1560762473&data%5Bcurrent_unit_id%5D=&data%5Brenter_personal_code%5D=&data%5Brenter_name%5D=&data%5Brenter_phone%5D=&data%5Brenter_email%5D=&data%5Brenter_postal_address%5D=×%5Bstart_date%5D=17.06.2019×%5Bstart_hours%5D=12×%5Bstart_minutes%5D=07×%5Bend_date%5D=17.06.2019×%5Bend_hours%5D=13×%5Bend_minutes%5D=07&data%5Breturned_to_unit_id%5D=0&data%5Bcountry%5D=Eesti&data%5Breceived_helmets%5D=&data%5Bdocument_id%5D=&data%5Bdocument_issue_date%5D=&data%5Bdocument_valid_to%5D=&data%5Blicence_id%5D=&data%5Blicence_issue_date%5D=&data%5Blicence_valid_to%5D=&data%5Bissuing_comment%5D=
URL в Internet Explorer (последняя версия):
?act=rent.fillBookingContractTemplate&item_id=1&data=action=issue_item&item_id=&data%5Bcontract_no%5D=1560762453&data%5Bcurrent_unit_id%5D=&data%5Brenter_personal_code%5D=&data%5Brenter_name%5D=&data%5Brenter_phone%5D=&data%5Brenter_email%5D=&data%5Brenter_postal_address%5D=×%5Bstart_date%5D=17.06.2019×%5Bstart_hours%5D=12×%5Bstart_minutes%5D=07×%5Bend_date%5D=17.06.2019×%5Bend_hours%5D=13×%5Bend_minutes%5D=07&data%5Breturned_to_unit_id%5D=0&data%5Bcountry%5D=Eesti&data%5Breceived_helmets%5D=&data%5Bdocument_id%5D=&data%5Bdocument_issue_date%5D=&data%5Bdocument_valid_to%5D=&data%5Blicence_id%5D=&data%5Blicence_issue_date%5D=&data%5Blicence_valid_to%5D=&data%5Bissuing_comment%5D=
Пример кода, который воспроизводит ошибку:
<?php
if (isset($_GET)) {
var_dump($_GET);
}
?>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" crossorigin="anonymous"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="></script>
<form method="POST" id="item-issuing-form">
<input type="hidden" name="action" value="issue_item">
<input type="hidden" name="item_id" value="275">
<input type="hidden" name="data[contract_no]" value="1560836285">
<input type="hidden" name="data[current_unit_id]" value="664">
<input name="data[renter_personal_code]">
<input name="data[renter_name]">
<input name="data[renter_phone]">
<input name="data[renter_email]">
<input name="data[renter_postal_address]">
<input name="times[start_date]">
<select name="times[start_hours]"></select>
<select name="times[start_minutes]"></select>
<input name="times[end_date]">
<select name="times[end_hours]"></select>
<select name="times[end_minutes]"></select>
<select name="data[returned_to_unit_id]"></select>
<select name="data[country]"></select>
<input name="data[received_helmets]">
<input name="data[document_id]">
<input name="data[document_issue_date]">
<input name="data[document_valid_to]">
<input name="data[licence_id]">
<input name="data[licence_issue_date]">
<input name="data[licence_valid_to]">
<textarea name="data[issuing_comment]"></textarea>
<button type="button" class="go-test">Go</button>
</form>
<script>
$('.go-test').on('click', function () {
window.open('index.php?item_id=275&data=' + $('#item-issuing-form').serialize(), '_blank');
});
</script>