Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9

Размещение нескольких форм на одной странице

01.11.2015, 16:35. Показов 4370. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Очень нужна помощь в размещении нескольких идентичных форм на одной странице. каждая форма отвечает за заказ определенной услуги, поэтому приходящая на email информация должна быть разная. Все формы содержат 2 поля (имя и email) и кнопку отправки:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<form action="contact.php" name="contactform" method="post">        
<input type="text" name="first_name" placeholder="Ваше имя">
<input type="text" name="email" placeholder="Ваш email"> 
<input type="submit" name="submit" value="Заказать" >  
</form>
Код в файле contact.php:
<div id="contentForm">
 
            <?php
            header('Content-Type: text/html; charset=utf-8');
            
            
            if(isset($_POST['email'])) {
                 
                
                 
                $email_to = "na24@mail.ru";
                 
                $email_subject = "Сообщение с сайта";
                 
                   
                $first_name = $_POST['first_name']; // required 
                $email_from = $_POST['email']; // required
                 
                $email_message = "Информация о пользователе.\n\n";
                 
                    
                function clean_string($string) {
                    $bad = array("content-type","bcc:","to:","cc:","href");
                    return str_replace($bad,"",$string);
                }
                 
                 
                $email_message .= "Имя: ".clean_string($first_name)."\n";
                $email_message .= "Email: ".clean_string($email_from)."\n";
                 
                     
                // create email headers
                 
                $headers = 'From: '.$email_from."\r\n".
                 
                'Reply-To: '.$email_from."\r\n" .
                 
                'X-Mailer: PHP/' . phpversion();
                 
                @mail($email_to, $email_subject, $email_message, $headers); 
                 
                ?>
                 
                <!-- Message sent! (change the text below as you wish)-->
                <div class="container">
                    <div class="row">
                        <div class="col-sm-6 col-sm-offset-3">
                            <div id="form_response" class="text-center">
                                <img class="img-responsive" src="img/thumbs/mail_sent.png" alt="image" />
                                <h1>Поздравляем!!!</h1>
                                <p><b><?=$first_name;?></b>, Ваше письмо успешно отправлено.</p>
                                <a class="btn btn-theme" href="index.html">Вернуться на сайт</a>
                            </div>
                        </div>  
                    </div>                  
                </div>
                 <!--End Message Sent-->
 
                <?php
                 
                }
 
                ?>
 
        </div>
Какие бы манипуляции ни выполнялись, итог один - после нажатия Отправить курсор перескакивает в самую первую форму на страницу, в самый первый input.
Посоветуйте, как решать эту задачу. заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.11.2015, 16:35
Ответы с готовыми решениями:

Несколько форм обратной связи на одной странице
Всем доброго времени суток. Не могу настроить на лендинге несколько форм обратной связи. Одна работает при копировании кода, а другие...

Размещение нескольких форм на одной странице
Доброго всем времени суток. Возможно ли поставить две формы на одной странице? К примеру - форма входа и регистрации посетителя. При...

Отбор одной из нескольких форм на странице и работа с ней
Всем доброго дня. Подскажите, какой необходимо прописать код в cs файле, чтобы он на странице aspx обрабатывал только конкретную...

14
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
01.11.2015, 17:33
Na24, Во-первых, выделяйте php-код и html-разметку соответствующими тегами на форуме, иначе читать невозможно.
Во-вторых, у Вас тут всего одна форма.
В-третьих, у других форм имена должны быть другими.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 17:39  [ТС]
Извините за некорректное размещение, в первый раз...
Аналогичная тема уже поднималась Несколько форм обратной связи на одной странице
Решения, к сожалению, не было найдено.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 18:45
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<form action="contact.php" name="contactform" method="post">
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email">
        <input type="submit" name="submit" value="Заказать" >
    </form>
    <form action="contact.php" name="contactform_1" method="post">
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email">
        <input type="submit" name="submit_1" value="Заказать" >
    </form>
    <form action="contact.php" name="contactform_2" method="post">
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email">
        <input type="submit" name="submit_2" value="Заказать" >
    </form>
<?php 
if(isset($_POST['submit'])){
    echo 'это форма 1';
}
if(isset($_POST['submit_1'])){
    echo 'это форма 2';
}
if(isset($_POST['submit_2'])){
    echo 'это форма 3';
}
 
?>
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 19:00  [ТС]
Извините за неопытность, но что конкретно из файла php, который был мною представлен, должно быть прописано внутри echo? В данном файле - сообщение-заголовок для письма, а также сообщение для пользователя об удачной отправке. Это все необходимо поместить внутри echo?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 19:40
Цитата Сообщение от Na24 Посмотреть сообщение
каждая форма отвечает за заказ определенной услуги
а нафига куча форм. форма одна, в ней поле hidden в котором id услуги. форма выводится в всплывающем окне.
возле каждой услуги кнопка заказать. в ней атрибут типа data-id, в котором находится идентификатор услуги.
вешаем onclick на кнопку. при клике на кнопку открываем форму и в поле type="hidden" добавляем значение атрибута data-id кнопки.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 20:04  [ТС]
Так хочет заказчик... Одна услуга - одна форма. Всплывающую форму не хочет.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 20:15
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <form action="contact.php" name="contactform" method="post">        
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email"> 
        <input type="hidden" name="servise" value="servise_1">
        <input type="submit" name="submit" value="Заказать" >  
    </form>
    <form action="contact.php" name="contactform_1" method="post">        
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email"> 
        <input type="hidden" name="servise" value="servise_2">
        <input type="submit" name="submit_1" value="Заказать" >  
    </form>
    <form action="contact.php" name="contactform_2" method="post">        
        <input type="text" name="first_name" placeholder="Ваше имя">
        <input type="text" name="email" placeholder="Ваш email"> 
        <input type="hidden" name="servise" value="servise_3">
        <input type="submit" name="submit_2" value="Заказать" >  
    </form>
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<div id="contentForm">
    <?php
        if(isset($_POST['email'])) {
            $email_to = "na24@mail.ru";
            $email_subject = "Сообщение с сайта";
            $first_name = $_POST['first_name']; // required 
            $email_from = $_POST['email']; // required
            $email_message = "Информация о пользователе.\n\n";
 
            function clean_string($string) {
                $bad = array("content-type","bcc:","to:","cc:","href");
                return str_replace($bad,"",$string);
            }
 
            $email_message .= "Имя: ".clean_string($first_name)."\n";
            $email_message .= "Email: ".clean_string($email_from)."\n";
            $email_message .= "Услуга: ".clean_string($_POST['servise'])."\n";
 
            // create email headers
 
            $headers = 'From: '.$email_from."\r\n".
            'Reply-To: '.$email_from."\r\n" .
            'X-Mailer: PHP/' . phpversion();
             $res = mail($email_to, $email_subject, $email_message, $headers); 
            ?>
 
            <!-- Message sent! (change the text below as you wish)-->
            <div class="container">
                <div class="row">
                    <div class="col-sm-6 col-sm-offset-3">
                        <div id="form_response" class="text-center">
                            <img class="img-responsive" src="img/thumbs/mail_sent.png" alt="image" />
                            <?php if($res){?>
                                <h1>Поздравляем!!!</h1>
                                <p><b><?=$first_name;?></b>, Ваше письмо успешно отправлено.</p>
                            <?php }else{?>
                                <h1>Что-то пошло не так</h1>
                                <p><b><?=$first_name;?></b>, Ваше письмо отправить не удалось.</p>        
                            <?php }?>
                            <a class="btn btn-theme" href="index.html">Вернуться на сайт</a>
                        </div>
                    </div>  
                </div>                  
            </div>
             <!--End Message Sent-->
    <?php } ?>
</div>
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 20:58  [ТС]
Ситуация не меняется. Первая форма работает, все остальные - нет. При заполнении и отправке других форм, курсор перепрыгивает на первую форму и подсвечивает первый input, как при валидации. Мне пришло личное сообщение о том, что проблема в подсветке синтаксиса. Возможно ли такое и знаете ли как это можно решить?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
01.11.2015, 21:08
Na24, скорее всего валидация сделана на JS, нужно анализировать JS-скрипты.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 21:14  [ТС]
Валидация сделана с помощью jquery.validate.js
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$(document).ready(function(){
    
        "use strict";
 
        $(".form_mobile form").validate({
            rules:{ 
                first_name:{
                    required: true,
                    minlength: 2,
                    maxlength: 16,
                },
                email:{
                        required: true,
                        email: true,
                } 
            },
            errorPlacement: function(error, element) {}
        });             
        
    });
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 21:36
как вариант, повесить валидацию на каждую форму отдельно.
а вообще, эти проверки можно сделать с помощью html
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 21:40  [ТС]
валидация как раз на каждой форме отдельно
попробуем html вариацию как вариант
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
01.11.2015, 21:59
Цитата Сообщение от Na24 Посмотреть сообщение
валидация как раз на каждой форме отдельно
не может быть. чудес не бывает. проверил, если на каждой отдельно все работает.
0
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 9
01.11.2015, 22:15  [ТС]
С html валидацией все работает, за исключением самой валидации, safari на нее не реагирует. Это, конечно, уже не столь критично, но вдруг есть решение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2015, 22:15
Помогаю со студенческими работами здесь

Размещение представлений на одной странице
Имеется два представления с разными моделями (первая модель таблица для хранения инфы по объектам, другая по сути то же самое) //...

Обработка нескольких форм на странице
Добрый день! Возникла такая проблема. На странице 2 формы, отправляю данные с помощью ajax. Первая форма работает, все нормально. Когда...

Размещение нескольких картинок в одной ячейке
Хочу расположить в одной ячейке несколько картинок Нужно что бы получилось что-то типа этого: Ширина ячейки не фиксированная

Несколько форм на одной странице
Здравствуйте! Типа страницу регистрации, в которой есть две разные формы(для пациентов и врачей) разделенные nav-tab'ами. В зависимости...

Обработка двух форм на одной странице
Здравствуйте, форумчане! На странице две формы, заполняю первую, данные уходят ajax’ом, в ответ приходит id новой записи ajax’ом, это id ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru