Здравствуйте. Помогите пожалуйста. Задача. Нужно в форме (к открывающему FORM) добавить в конце #form Чтобы при отправке переходило в середину страницы. Спойлер: ПРИМЕРЫ И НУЖНЫЕ РЕЗУЛЬТАТЫ пример: <form method="post" id="userForm" class="formResponsive" action="send.html"> должно получиться <form method="post" id="userForm" class="formResponsive" action="send.html#form"> пример: <form method="post" id="forma123" class="formResponsive" action="forma.html"> должно получиться <form method="post" id="forma123" class="formResponsive" action="forma.html#form"> пример: <form method="post" id="www" class="formResponsive" action="send.html"> должно получиться <form method="post" id="www" class="formResponsive" action="send.html#form"> Значения в теге FORM постоянно меняются Главное добавить в конце открывающего тега FORM это #form action="" всегда в конце тега <form> находится. т.е. в <form неважно что "> ищем последние "> меняем на #form"> Форма хранится уже в переменной $sendform Т.е. её надо регуляркой обработать... $sendform=...........;
это просто надо рядом приписать <a name="form"></a> и это будет невидимый элемент, к которому доматывается страница.
а на какой стадии должно добавляться? в смысле, на сервере во время формирования страницы или на клиенте?
На стадии формирования формы. Я же написал что есть уже переменная содержащая саму форму. Остаётся её обработать. Затем после отправки формы, страница прокрутится до нужного мне места (a name=form)
PHP: if (/* если хештег нужен */) { $hesh = "#form"; } else { $hesh = ""; } $sendform = "<form method='post' id='userForm' class='formResponsive' action='send.html$hesh'> ...";
Зачем мне это?! Читайте шапку темы. Ну всё разжевал уже больше некуда. Даже потом второй раз подтвердил что УЖЕ ЕСТЬ переменная в которой УЖЕ содержится код формы. Ещё раз объясняю... Надо в переменной $sendform Найти начало <form и конец этого тега "> И заменить "> на #form"> Всё. Больше ничего не надо. Если не знаете как регулярным выражением сделать, посоветуйте как это правильно реализовать с помощью например этого: 1) Ищем в $sendform тег <form и всё что внутри> (именно ОТКРЫВАЮЩИЙ ТЕГ!!!!!!!!!!!!!!!!!) т.е. от <form и до первого встречного > 2) Затем меняем в нём "> на #form"> ВСЁ. p.s. у меня знаний не хватает как без ошибок написать самому, вот и обратился к профи...
мм PHP: <?php $form = str_replace('<form', '<a name="form"></a><form', $form); решает твой вопрос. Вообще, если не быть агрессивным школьником, то жить будет всем куда веселее.
Обращаюсь к igordata Я понимаю что вы тут модератор и всё такое. Но зачем упорно мне давать советы которые я ПРЯМО говорю - НЕ НУЖНЫ!!! НЕ В ТЕМУ!!! Как ещё сказать?! Пожалуйста, igordata больше не отвечайте в этой теме. Я жду что мне ответит тот кто разбирается в вопросе который я задавал. А чтобы не думали что я агрессивный школьник... ВТОРОЙ РАЗ РАЗЛОЖУ ПО ПОЛОЧКАМ. Хватит уже писать мне про a name. я уже несколько раз сказал что мне это не нужно, я УЖЕ это сделал и это видно из шапки темы!!! Мне лично вы уже дали 2 совета СДЕЛАТЬ a name. Ну не надо мне это. Не надо! Есть у меня в сайте уже a name=form именно для него и делается то что я попросил в шапке темы. и всё уже разжёвано и расписано так что у меня слов не хватает... p.s. извиняюсь за агрессию, но она оправдана логикой, умением писать и читать. Пожалуйста, никто больше не советуйте мне как вставить a name. очень вас прошу.
так вопрос решен, метка у формы. Какая разница до открывающего тега она стоит или после? вся твоя агрессия идёт от того, что ты нихрена не понимаешь, что пишешь и пытаешься смастерить костыль через одно место. =) Собственно всё. Я даже не спрашиваю, почему ты не можешь прямо в код формирующий форму всунуть это. Видимо, потому что не умеешь ничерта, а админа нету в вашей конторе.
Доступ есть только к уже сформированной форме заключённой в переменной $sendform --- Добавлено --- 25тыс сообщений набил, теперь понятно каким образом, оскорбляя пользователей и откровенным флудом. igordata хватит вступать со мной в бессмысленную переписку, я жду нормального человека.
preg_replace() - вот что тебе нужно. Почитай мануал по этой функции. Если я не ошибаюсь твоё регулярное выражение будет примерно таким: /">/ На сколько я знаю, эти символы не зарезервированы. Но могу ошибаться...
Я не флуда искал и не пустозвонства, а конкретной помощи. Вместо этого получил советы не по теме и ИДИ ЧИТАЙ МАНУАЛЫ. Помощники блин. Не знаешь как помочь - не флуди!!! Хотя если модераторы тут флудят и хамят, то о каких правилах может идти речь...
во-первых он хочет костыль во-вторых не понимает, почему он хочет именно такой костыль, и не может сказать, чем мой плох в-третьих - хамит =)
не забывай, что тебе ни кто ничего не должен. Если ты не хочешь почитать мануал и понять как всё работает хотя бы на уровне "дал функции это - она вернула вот это"... дело хозяйское, конечно...
runcore — идеальный совет. Всё работает. БОЛЬШОЕ ВАМ СПАСИБО. Спасибо всем кто пытался помочь: TeslaFeo, mr.akv (не помогло, но спасибо).
ты не хочешь раскрыть тайну, начерта тебе тег якоря ставить после открывающего тега и почему не подправить код формы?