За последние 24 часа нас посетили 18490 программистов и 1607 роботов. Сейчас ищут 1847 программистов ...

Нужно в форме (к открывающему FORM) добавить в конце #form - PHP

Тема в разделе "Сделайте за меня", создана пользователем webstudia, 4 май 2016.

  1. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    Здравствуйте.
    Помогите пожалуйста.
    Задача.
    Нужно в форме (к открывающему 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=...........;
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это просто надо рядом приписать <a name="form"></a> и это будет невидимый элемент, к которому доматывается страница.
     
  3. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    Как делать a name я знаю.
    Я задавал другой вопрос.
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    а на какой стадии должно добавляться?
    в смысле, на сервере во время формирования страницы или на клиенте?
     
  5. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    На стадии формирования формы.
    Я же написал что есть уже переменная содержащая саму форму. Остаётся её обработать.
    Затем после отправки формы, страница прокрутится до нужного мне места (a name=form)
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    PHP:
    1. if (/* если хештег нужен */) {
    2. $hesh = "#form";
    3. } else {
    4. $hesh = "";
    5. }
    6.  
    7. $sendform = "<form method='post' id='userForm' class='formResponsive' action='send.html$hesh'> ...";
     
  7. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    Зачем мне это?!
    Читайте шапку темы. Ну всё разжевал уже больше некуда.
    Даже потом второй раз подтвердил что УЖЕ ЕСТЬ переменная в которой УЖЕ содержится код формы.

    Ещё раз объясняю...
    Надо в переменной $sendform
    Найти начало <form и конец этого тега ">
    И заменить "> на #form">
    Всё. Больше ничего не надо. Если не знаете как регулярным выражением сделать, посоветуйте как это правильно реализовать с помощью например этого:
    1) Ищем в $sendform тег <form и всё что внутри> (именно ОТКРЫВАЮЩИЙ ТЕГ!!!!!!!!!!!!!!!!!) т.е. от <form и до первого встречного >
    2) Затем меняем в нём "> на #form">
    ВСЁ.

    p.s.
    у меня знаний не хватает как без ошибок написать самому, вот и обратился к профи...
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    мм

    PHP:
    1. <?php
    2. $form = str_replace('<form', '<a name="form"></a><form', $form);
    решает твой вопрос.

    Вообще, если не быть агрессивным школьником, то жить будет всем куда веселее.
     
  9. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    Обращаюсь к igordata
    Я понимаю что вы тут модератор и всё такое.
    Но зачем упорно мне давать советы которые я ПРЯМО говорю - НЕ НУЖНЫ!!! НЕ В ТЕМУ!!! Как ещё сказать?!
    Пожалуйста, igordata больше не отвечайте в этой теме. Я жду что мне ответит тот кто разбирается в вопросе который я задавал.

    А чтобы не думали что я агрессивный школьник... ВТОРОЙ РАЗ РАЗЛОЖУ ПО ПОЛОЧКАМ.
    1. Хватит уже писать мне про a name. я уже несколько раз сказал что мне это не нужно, я УЖЕ это сделал и это видно из шапки темы!!!
    2. Мне лично вы уже дали 2 совета СДЕЛАТЬ a name. Ну не надо мне это. Не надо! Есть у меня в сайте уже a name=form именно для него и делается то что я попросил в шапке темы. и всё уже разжёвано и расписано так что у меня слов не хватает...

    p.s.
    извиняюсь за агрессию, но она оправдана логикой, умением писать и читать.

    Пожалуйста, никто больше не советуйте мне как вставить a name. очень вас прошу.
     
  10. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    попытался предложить простое решение задачи.
    а что нет доступа к переменной?
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    так вопрос решен, метка у формы. Какая разница до открывающего тега она стоит или после?

    вся твоя агрессия идёт от того, что ты нихрена не понимаешь, что пишешь и пытаешься смастерить костыль через одно место. =) Собственно всё. Я даже не спрашиваю, почему ты не можешь прямо в код формирующий форму всунуть это. Видимо, потому что не умеешь ничерта, а админа нету в вашей конторе.
     
  12. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    Доступ есть только к уже сформированной форме заключённой в переменной $sendform
    --- Добавлено ---
    25тыс сообщений набил, теперь понятно каким образом, оскорбляя пользователей и откровенным флудом.
    igordata хватит вступать со мной в бессмысленную переписку, я жду нормального человека.
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  14. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    preg_replace() - вот что тебе нужно. Почитай мануал по этой функции.
    Если я не ошибаюсь твоё регулярное выражение будет примерно таким: /">/
    На сколько я знаю, эти символы не зарезервированы. Но могу ошибаться...
     
  15. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    Классная тут помощь... Иди читай FAQ...

    Жду реальной помощи, хватит флудить...
     
  16. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    я тебя носом ткнул в функцию которая тебе нужна. что тебе не нравится?
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в жопу его =)
     
  18. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    Я не флуда искал и не пустозвонства, а конкретной помощи.
    Вместо этого получил советы не по теме и ИДИ ЧИТАЙ МАНУАЛЫ.
    Помощники блин. Не знаешь как помочь - не флуди!!! Хотя если модераторы тут флудят и хамят, то о каких правилах может идти речь...
     
  19. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    PHP:
    1. $sendform = preg_replace("/<form[^>]+action=\"[^\"]+/i", "$0#form", $sendform);
     
    webstudia нравится это.
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    во-первых он хочет костыль
    во-вторых не понимает, почему он хочет именно такой костыль, и не может сказать, чем мой плох
    в-третьих - хамит =)
     
  21. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    PHP:
    1. $sendform = str_replace('/">/', '#form">', $sendform);
     
  22. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    str_replace() непонимает регулярки.
    а если исправить, то другие теги внутри форум покоцаются
     
  23. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    не забывай, что тебе ни кто ничего не должен.
    Если ты не хочешь почитать мануал и понять как всё работает хотя бы на уровне "дал функции это - она вернула вот это"...
    дело хозяйское, конечно...
     
  24. webstudia

    webstudia Новичок

    С нами с:
    4 май 2016
    Сообщения:
    13
    Симпатии:
    0
    runcore — идеальный совет. Всё работает. БОЛЬШОЕ ВАМ СПАСИБО.
    Спасибо всем кто пытался помочь: TeslaFeo, mr.akv (не помогло, но спасибо).
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты не хочешь раскрыть тайну, начерта тебе тег якоря ставить после открывающего тега и почему не подправить код формы?