2012-07-20 2 views
3

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

пример index.php:

<div> 
    some very long content that pushes my form down the page 
</div> 
<div id="myDiv"> 
    <form action="index.php#myDiv" method="post"> 
    <input name="abc" value="123"/> 
    <input type="submit" value="submit"/> 
    </form> 
</div> 

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

Во-вторых, некоторые другие говорили, что иногда форма «прыгает вверх», когда они нажимают кнопку «Отправить». Я еще не смог воспроизвести это, но кажется довольно очевидным, что вместо публикации данных браузер вместо этого выполняет действие с идентификатором фрагмента.

Может ли кто-нибудь предложить лучший способ сделать это?

ответ

1

Перенаправить пользователя после отправки формы с помощью функции header() вместе с идентификатором.

<div> 
    some very long content that pushes my form down the page 
</div> 
/*Use header() to redirect the person on the #point*/ 
<?php 
//form data goes here, if it passes everything then use 
header('Location:index.php#myDiv'); 
exit; 
?> 
<div id="myDiv"> 
    <form action="index.php" method="post"> 
    <input name="abc" value="123"/> 
    <input type="submit" value="submit"/> 
    </form> 
</div> 
Смежные вопросы