简体   繁体   中英

PHP Header Location - redirect to URL with HTML anchor

I have a website, where after submission of a form user is redirected throught Header Location to the same page but with anchor to fill in another form.

Header('Location: http://www.topdodavatel.cz/tuzby/tuzby.php#nechaj');

However, when the first form is submitted, the user is not landed on the anchored DIV, but on the bottom of page.

As you can try on development version http://www.topdodavatel.cz/tuzby/tuzby.php

What could cause that the anchor does not work? If I choose some div that is written in the code above, it works well.

Kindly thank you for your inputs!

This is a common problem it seems, see here or here for a similar problem.

It seems that something along the way, PHP, Apache or your browser strips out the anchor element on redirection.

To make this work I would suggest moving the anchor content nechaj into a query variable tuzby.php?anchor=nechaj . Then in PHP check for this variable and if it exists use JavaScript to move the user to the correct point. Like this:

window.location.hash='<?php echo $_GET["anchor"] ?>';

You'll need to add some kind of input verification check for the anchor variable of course.

Name is important

Give submit button like this

<input type="submit" name="submits" value="Done" />

in the submit box name is required need to submit the form

Provide name in your submit in your site check out it will work

Thank everyone for your initiative. It showed up that major issue was with DIV that obtained content generated from database and did not have set fixed height, which caused temporary overflow of that DIV.

So I fixed it by setting a height to the element and overflow:hidden (before the style loads properly).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM