Имя поля в URL заменено на «×» в Internet Explorer - PullRequest
1 голос
/ 17 июня 2019

Я использую функции jQuery serialize () и window.open для передачи данных форм на другую страницу, которая будет распечатывать файл на основе этих данных.

Перед перенаправлением URL выглядит нормально (консоль зарегистрировала сериализованный URL):

renter_postal_address%5D=&times%5Bstart_date%5D=17.06.2019&times%5Bstart_hours%5D=10&times%5Bstart_minutes%5D=56&times%5Bend_date%5D=17.06.2019&times%5Bend_hours%5D=11&times%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=&times%5Bstart_date%5D=17.06.2019&times%5Bstart_hours%5D=12&times%5Bstart_minutes%5D=07&times%5Bend_date%5D=17.06.2019&times%5Bend_hours%5D=13&times%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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...