Кнопка для отправки данных формы на другой URL, содержащий #

#html

#HTML

Вопрос:

Это мой HTML:

 <form action="http://example.com/rezervari/index.html#/hotelbooking" method="get">

    <input type="hidden" name="hotel" value="<?= $hotel ?>" class="form-control">
    <input type="hidden" name="roomtypegroups" value="<?= $roomtypegroups ?>" class="form-control">

    <div class="form-row">
        <div class="col">
            <div class="form-group">
                <label>Sosire</label>
                <div class="input-group mb-3">
                    <input id="from" type="text" name="from" value="<?= $arrival == 'CURRENT' ? date('Y-m-d') : $arrival ?>" class="form-control datepicker1">
                    <div class="input-group-append datepicker1-h">
<span class="input-group-text" id="basic-addon2"><i class="fa fa-calendar-check-o" aria-hidden="true"></i></span>
                    </div>
                </div>
            </div>
        </div>
        <div class="col">
            <div class="form-group">
                <label>Plecare</label>
                <div class="input-group mb-3">
                    <input id="to" type="text" name="to" value="<?= $arrival == 'CURRENT' ? date('Y-m-d', strtotime(date('Y-m-d') . ' ' . $departure . ' day')) : date('Y-m-d', strtotime($arrival . ' ' . $departure . ' day')) ?>" class="form-control datepicker2">
                    <div class="input-group-append datepicker2-h">
<span class="input-group-text" id="basic-addon2"><i class="fa fa-calendar-times-o" aria-hidden="true"></i></span>
                    </div>
                </div>
            </div>
        </div>
    </div>
 

Когда я отправляю форму, URL-адрес теряет «#» и портит его, и это бесполезно, потому что запрос не работает на дополнительном веб-сайте, поскольку он становится:

http://example.com/rezervari/index.html ?отель = 14315amp;roomtypegroups= 44332amp; от = 2020-11-23amp;до = 2020-11-24amp; количество номеров = 1amp; взрослый = 1 #/hotelbooking

Вместо этого он должен быть:

http://example.com/rezervari/index.html#/hotelbooking ?hotel=14315amp;roomtypegroups=44332amp;from=2020-09-91amp;to=2020-09-14amp;adult=1amp;numchild1=1amp;numchild2=1amp;numchild3=1

Как я могу передать ссылку без удаления «#» и искажения всего URL-адреса? Спасибо!

Комментарии:

1. Вам нужно будет использовать JavaScript. Все, что находится после # , является фрагментом и должно идти после строки запроса.

Ответ №1:

Предполагается, что идентификаторы фрагментов ссылаются на определенную часть веб-страницы и разрешаются на стороне клиента.

Следовательно, они должны идти после строки запроса.

Когда вы отправляете форму метода GET, она заменит все после начала строки запроса в action с новой сгенерированной строкой запроса.


Если у вас есть какой-то хак, который считывает идентификатор фрагмента на стороне клиента, и вам нужно поместить строку запроса внутрь идентификатора фрагмента, чтобы этот код мог ее прочитать, вы не можете использовать стандартную логику отправки формы.

Вам нужно будет добавить обработчик submit событий в форму с помощью JavaScript, запретить действие по умолчанию, создать URL самостоятельно, а затем перейти к нему (например, присвоив его location ).

Комментарии:

1. Спасибо за ваш ответ. Если у вас есть время, может быть, вы можете предложить часть javascript, так как я новичок в JS. Спасибо 🙂

2. Я должен написать, что я сделал: вот мой код для кнопки отправки. <тип кнопки=»отправить» class=»btn butn» onclick=»javascript: form.action=’ Search example.com/stuff/index.html #/… >