PHP Header Location - redirect to URL with HTML anchor

5.4k views Asked by At

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!

3

There are 3 answers

0
Bruce On

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

0
tsn On

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.

0
Jan Mares On

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).