Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 46
1

Форма обратной связи

30.09.2015, 10:38. Показов 1638. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На под домене http://grace.jak.net.ua/ реализована форма обратной связи.
После отправки формы всплывало стандартное браузерное окно, убрала alert.
Сейчас после отправления переходит на страницу contacts.php.
В РНР чайник-чайников.
Подскажите, пожалуйста как сделать всплывающее окно, стили которого можно редактировать, типа "Ваше сообщение получено, спасибо!"

Вот код формы:

файл отправки contacts.php

PHP
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
<?php
if (isset ($_POST['contactFF'])) {
  $to = "pysaryna@i.ua"; // поменять на свой электронный адрес
  $from = $_POST['contactFF'];
  $subject = "Anketa " .$_SERVER['HTTP_REFERER'];
  $message = "1. Ваше имя: ".$_POST['nameFF']."\n2. Сколько лет опыта в данной сфере: ".$_POST['ageFF']."\n3. На каких из этих сайтов вы работали: "
  ."\n+ ".$_POST['siteFF1']
  ."\n+ ".$_POST['siteFF2']
  ."\n+ ".$_POST['siteFF3']
  ."\n+ ".$_POST['siteFF4']
    ."\n+ ".$_POST['siteFF5']
      ."\n+ ".$_POST['siteFF6']
."\nДругой, укажите: ".$_POST['site']
  ."\n4. Телефон, по которому с вами можно связаться: ".$_POST['phoneFF']."\n5. Укажите ваш город проживания: ".$_POST['cityFF']."\n6. Почему мы должны предпочесть вашу кандидатуру: ".$_POST['reasonFF']."\n7.Email: ".$from."\nIP: ".$_SERVER['REMOTE_ADDR'];
  $boundary = md5(date('r', time()));
  $filesize = '';
  $headers = "MIME-Version: 1.0\r\n";
  $headers .= "From: " . $from . "\r\n";
  $headers .= "Reply-To: " . $from . "\r\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    $message="
Content-Type: multipart/mixed; boundary=\"$boundary\"
 
--$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit
 
$message";
  for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
     if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
         $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
         $filename = $_FILES['fileFF']['name'][$i];
         $filetype = $_FILES['fileFF']['type'][$i];
         $filesize += $_FILES['fileFF']['size'][$i];
         $message.="
 
 
 
--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"
 
$attachment";
     }
   }
   $message.="
--$boundary--";
 
  if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
    mail($to, $subject, $message, $headers);
 
 
    echo $_POST['nameFF'].', Ваше сообщение получено, спасибо!';
 
 
 
   //  $(window).load(function() {
// $(".window").fadeIn(400);
// });
 
 
  } else {
    echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
  }
}
?>
HTML5
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<div id="forma">
    <div class="wrap3">
<h3>Форма обратной связи</h3><br />
<h4>Если вы готовы к сотрудничеству с нашей командой, просим Вас заполнить <br />
предлагаемую форму ниже и наши менеджеры свяжутся с вами в кротчайшие сроки. </h4>
<table class="form">
<form  method="post" id="feedback-form" action="contacts.php"> 
 
    <tr>
    <td>
<label for="nameFF"><p class="pp">1. Ваше имя:</p></label><br />
<input type="text" name="nameFF" id="nameFF" required x-autocompletetype="name" class="w100">
<br /><br /></td>  </tr>
<tr>
<td><label for="ageFF"><p class="pp">2. Сколько лет опыта в данной сфере:</p></label><br />
<input name="ageFF" type="radio" required value="1 год" /><span class="text-g">1 год</span>
<input name="ageFF" type="radio" required value="2 года" /><span class="text-g">2 года</span>
<input name="ageFF" type="radio" required value="3 года и более" /><span class="text-g">3 года и более</span>
</td>
  </tr>
 
<tr>
 
<td><label for="siteFF"><p class="pp"><br />3. На каких из этих сайтов вы работали:</p></label><br />
<input name="siteFF1" type="radio"   value="Dream Marriage" /><span class="text-g">Dream Marriage</span>
<input name="siteFF2" type="radio"  value="Natasha Club" /><span class="text-g">Natasha Club</span>
<input name="siteFF3" type="radio"  value="Charmdate" /><span class="text-g">Charmdate</span>
<input name="siteFF4" type="radio"  value="Anastasia" /><span class="text-g">Anastasia</span>
<input name="siteFF5" type="radio"  value="Все" /><span class="text-g">Все</span>
<input name="siteFF6" type="radio"  value="Другой" /><span class="text-g">Другой, укажите:</span><br />
<input type="text" name="site" id="site" required placeholder="" class="w100">
</td>
  </tr>
        <tr> <td><br /><label for="phoneFF"><p class="pp">4. Телефон, по которому с вами можно связаться:</p></label><br />
<input type="text" name="phoneFF" id="rostFF" required placeholder="" class="w100"><br /><br /></td>  </tr>
 
 
 
 
      <tr>
   <td><label for="cityFF"><p class="pp">5. Укажите ваш город проживания:</p></label><br />
<input type="text" name="cityFF" id="cityFF" required  x-autocompletetype="name" class="w100"><br /><br /></td>   </tr>
    <tr>
<td><label for="reasonFF"><p class="pp">6. Почему мы должны предпочесть вашу кандидатуру:</p></label><br />
<input type="text" name="reasonFF" id="hairFF" required x-autocompletetype="name" class="w100"><br /><br /></td>
  </tr>
    <tr>
<td>
<label for="contactFF"><p class="pp">7. Ваш Email:</p></label><br />
<input type="email" name="contactFF" id="contactFF" required placeholder="" x-autocompletetype="email" class="w100">
  <br /><br /></td>
  </tr>
  <br />
 
 
 
</table><br />
<input value="ОТПРАВИТЬ АНКЕТУ" type="submit" id="submitFF">
</form> <br /><br />  <br /><br />
<div class="clear"></div>
 
 
 
</div>
 
</div>
 
</div>
<div id="footer"><p class="foot-t">Не стремитесь, чтобы было легче,
стремитесь, чтобы было лучше.</p></div>
 
 
 
 
 
 
<script>
document.getElementById('feedback-form').addEventListener('submit', function(evt){
  var http = new XMLHttpRequest(), f = this;
  evt.preventDefault();
  http.open("POST", "contacts.php", true);
  http.onreadystatechange = function() {
  
$(".window").fadeIn(400);
 
    }
  }
  http.onerror = function() {
    alert('Извините, данные не были переданы');
  }
  http.send(new FormData(f));
}, false);
</script>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.09.2015, 10:38
Ответы с готовыми решениями:

Как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена
Добрый день. Подскажите пожалуйста как сделать чтоб форма обратной связи не отправляла письмо если...

форма обратной связи
Доброе утро. Есть демка с формой обратной связи для сайта. Подскажите где и что нужно подправить,...

Форма обратной связи
ЧИстый шаблон, на css и html , вставил форму связи на php, не работает подскажите почему ....

Форма обратной связи
Потребовалась на сайт форма обратной связи,буду рад прочитать идеи и варианты по созданию такого...

11
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
30.09.2015, 10:45 2
Цитата Сообщение от kit-kater Посмотреть сообщение
Подскажите, пожалуйста как сделать всплывающее окно, стили которого можно редактировать
Это будет самый обычный div, который стилями сделать похожим на всплывающее окно. Можно подключить уже готовую реализацию, например эту http://www.jacklmoore.com/colorbox/
1
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 46
30.09.2015, 11:11  [ТС] 3
Простите, некорректно сформулирован вопрос.
Как именно подключить этот див?
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
30.09.2015, 13:29 4
Обновите файл

Кликните здесь для просмотра всего текста
HTML5
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<link rel="stylesheet" href="http://www.jacklmoore.com/colorbox/example1/colorbox.css" />
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
 
<script type="text/javascript" src="http://www.jacklmoore.com/colorbox/jquery.colorbox.js"></script>
 
<div id="forma">
    <div class="wrap3">
<h3>Форма обратной связи</h3><br />
<h4>Если вы готовы к сотрудничеству с нашей командой, просим Вас заполнить <br />
предлагаемую форму ниже и наши менеджеры свяжутся с вами в кротчайшие сроки. </h4>
<table class="form">
<form  method="post" id="feedback-form" action="contacts.php"> 
 
    <tr>
    <td>
<label for="nameFF"><p class="pp">1. Ваше имя:</p></label><br />
<input type="text" name="nameFF" id="nameFF" required x-autocompletetype="name" class="w100">
<br /><br /></td>  </tr>
<tr>
<td><label for="ageFF"><p class="pp">2. Сколько лет опыта в данной сфере:</p></label><br />
<input name="ageFF" type="radio" required value="1 год" /><span class="text-g">1 год</span>
<input name="ageFF" type="radio" required value="2 года" /><span class="text-g">2 года</span>
<input name="ageFF" type="radio" required value="3 года и более" /><span class="text-g">3 года и более</span>
</td>
  </tr>
 
<tr>
 
<td><label for="siteFF"><p class="pp"><br />3. На каких из этих сайтов вы работали:</p></label><br />
<input name="siteFF1" type="radio"   value="Dream Marriage" /><span class="text-g">Dream Marriage</span>
<input name="siteFF2" type="radio"  value="Natasha Club" /><span class="text-g">Natasha Club</span>
<input name="siteFF3" type="radio"  value="Charmdate" /><span class="text-g">Charmdate</span>
<input name="siteFF4" type="radio"  value="Anastasia" /><span class="text-g">Anastasia</span>
<input name="siteFF5" type="radio"  value="Все" /><span class="text-g">Все</span>
<input name="siteFF6" type="radio"  value="Другой" /><span class="text-g">Другой, укажите:</span><br />
<input type="text" name="site" id="site" required placeholder="" class="w100">
</td>
  </tr>
        <tr> <td><br /><label for="phoneFF"><p class="pp">4. Телефон, по которому с вами можно связаться:</p></label><br />
<input type="text" name="phoneFF" id="rostFF" required placeholder="" class="w100"><br /><br /></td>  </tr>
 
 
 
 
      <tr>
   <td><label for="cityFF"><p class="pp">5. Укажите ваш город проживания:</p></label><br />
<input type="text" name="cityFF" id="cityFF" required  x-autocompletetype="name" class="w100"><br /><br /></td>   </tr>
    <tr>
<td><label for="reasonFF"><p class="pp">6. Почему мы должны предпочесть вашу кандидатуру:</p></label><br />
<input type="text" name="reasonFF" id="hairFF" required x-autocompletetype="name" class="w100"><br /><br /></td>
  </tr>
    <tr>
<td>
<label for="contactFF"><p class="pp">7. Ваш Email:</p></label><br />
<input type="email" name="contactFF" id="contactFF" required placeholder="" x-autocompletetype="email" class="w100">
  <br /><br /></td>
  </tr>
  <br />
 
 
 
</table><br />
<input value="ОТПРАВИТЬ АНКЕТУ" type="submit" id="submitFF">
</form> <br /><br />  <br /><br />
<div class="clear"></div>
 
 
 
</div>
 
</div>
 
</div>
<div id="footer"><p class="foot-t">Не стремитесь, чтобы было легче,
стремитесь, чтобы было лучше.</p></div>
 
 
 
 
 
 
<script>
document.getElementById('feedback-form').addEventListener('submit', function(evt){
  var http = new XMLHttpRequest(), f = this;
  evt.preventDefault();
  http.open("POST", "contacts.php", true);
  http.onreadystatechange = function() {
        
        if( http.readyState != 4 ) return;
 
        $(".window").fadeIn(400);
            
        if( http.status == 200 ) {
 
            $.colorbox({html: '<p style="color:green; margin: 5px;">Ваше сообщение получено, спасибо!</p>', closeButton: false});
 
            
        } esle {
 
            $.colorbox({html: '<p style="color:red; margin: 5px;">Извините, данные не были переданы</p>', closeButton: false});             
        }
    }
  }
  http.send(new FormData(f));
}, false);
</script>


Может быть заработает. И протестируйте отправку писем - должно отображаться стилизированное окошко с текстом "Ваше сообщение получено, спасибо!", либо "Извините, данные не были переданы".

Вряд ли этот код заработает с первого раза. Но, потестируйте. Будем отлаживать .
1
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 46
30.09.2015, 13:57  [ТС] 5
Обновила.
Не получилось
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
30.09.2015, 15:14 6
теперь удалите строку №15. Вот она:
HTML5
1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
исправьте строку №245. Вот она:
Javascript
1
        } esle {
надо заменить на
Javascript
1
        } else {
1
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 46
30.09.2015, 15:28  [ТС] 7
Исправила.
Все также
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
30.09.2015, 15:35 8
Лучший ответ Сообщение было отмечено kit-kater как решение

Решение

удалите не парную фигурную скобку в строке №249. Вот:
Javascript
1
}
1
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 46
30.09.2015, 15:40  [ТС] 9
ураааааа
спасибо огромное))))))))))
сто поклонов вам)
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
30.09.2015, 15:51 10

Не по теме:

Ну, классно :)
Заходите на кибер форум :thank_you:


А письмо приходит на почтовый ящик?

Добавлено через 8 минут

Не по теме:

Спасибо, ещё, Jewbacabra за ссылку на проект colorbox.

0
0 / 0 / 1
Регистрация: 25.05.2015
Сообщений: 46
30.09.2015, 15:57  [ТС] 11
приходят)
но не могу понять где редактируется внешний вид окна
по этой ссылке? http://www.jacklmoore.com/colo... lorbox.css
создать свой css вставить код с данной ссылки и редактировать как душе угодно?
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
01.10.2015, 13:37 12

Не по теме:

Вчера не мог ответить.



Цитата Сообщение от kit-kater
приходят)
Хорошо.

Цитата Сообщение от kit-kater
но не могу понять где редактируется внешний вид окна
по этой ссылке? http://www.jacklmoore.com/colo... lorbox.css
создать свой css вставить код с данной ссылки и редактировать как душе угодно?
Ну да, внешний вид окна задается стилями в файле

Код
http://www.jacklmoore.com/colorbox/example1/colorbox.css
, сам программный модуль функции всплывающего окна находиться в файле

Код
http://www.jacklmoore.com/colorbox/jquery.colorbox.js
его желательно не редактировать. Только если что-то сильно надо поменять.

В проекте colorbox есть куча настроек которые можно задать программно перед отображением стабилизированного окна.

-
Вот эти два файла:

1.
Код
http://www.jacklmoore.com/colorbox/example1/colorbox.css
2.
Код
http://www.jacklmoore.com/colorbox/jquery.colorbox.js
Желательно вам загрузить на ваш сервер-хостинг вашего сайта. Что бы они были по адресу

1.
Код
http://grace.jak.net.ua/colorbox.css
2.
Код
http://grace.jak.net.ua/jquery.colorbox.js
И эти два файла обязательно подключаете в между <HEAD></HEAD> там где необходим эффект стилизованного окна colorbox. Либо создать каталог colorbox

Код
http://grace.jak.net.ua/colorbox/...
И туда все два файла закинуть. Там еще изображения надо и их как-то загрузить на сайт. Желательно скачать и установить на сайт весь проект colobox целиком.

-
Весь проект colorbox находиться здесь.

И на Github.

Архив со всем необходимым вот здесь.

-
Лучше Вам, kit-kater, дать объявление где-то на fl.ru и нанять программиста что бы он Вам это все корректно реализовал. Да, есть еще фриланс-раздел на кибер форуме.

Но, можно, конечно, и на форуме спросить.

-

Не по теме:

kit-kater, возможно очень интересные стилизованные окна можно найти в поисковой системе по запросам «dialog box in vector», «popup window in vector». Смотреть надо изображения по этим запросам. К примеру в Google-картинки, Яндекс-картинки. Но я здесь почему то ничего не нашел, может быть Вы найдете. Далее понравившуюся картинку надо сверстать в html и обновить файл стилей css соотв. модуля диалоговых окон. Это если самому не хочется задавать стили диалогового окна, либо если к этому нет художеств. способностей. А можно найти другой [англ.] js модуль который реализует эффект всплывающих окон, и в каждом из них своё стилизованное окно. А может быть есть в каждом отдельном модуле коллекция своих скинов окон.

0
01.10.2015, 13:37
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.10.2015, 13:37
Помогаю со студенческими работами здесь

Форма обратной связи
Всем привет. Решил для общего развития сделать сайт,но застрял на форме обратной связи. Кто может...

Форма обратной связи
При использовании тега &lt;br&gt; в форме обратной связи всё время выскакивала ошибка синтаксиса....

Форма обратной связи
Дали сайт (не я делал естественно), сказали сделать форму обратной связи, поискал php коды, всунул...

Форма обратной связи
Создал форму обратной связи. Почта приходит, но еще есть надпись X-PHP-Originating-Script:...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
Как сделать UPDATE из SELECT в SQL Server
hw_wired 24.01.2025
В современных системах управления базами данных операции обновления и выборки данных являются фундаментальными инструментами для работы с информацией. SQL Server предоставляет мощные команды UPDATE и. . .
Как вставить элемент в массив на указанный индекс в JavaScript
hw_wired 24.01.2025
Массивы являются одной из фундаментальных структур данных в JavaScript, предоставляющей разработчикам мощный инструмент для хранения и управления упорядоченными наборами данных. Они позволяют хранить. . .
Чем отличаются HashMap и Hashtable в Java
hw_wired 24.01.2025
В мире разработки на Java существует множество инструментов для работы с коллекциями данных, и среди них особое место занимают структуры данных для хранения пар ключ-значение. HashMap и Hashtable. . .
Как конвертировать видео в GIF
hw_wired 24.01.2025
В современном мире анимированные изображения стали неотъемлемой частью цифровой коммуникации. Формат GIF (Graphics Interchange Format) представляет собой особый тип файлов, который позволяет. . .
Как скопировать текст в буфер обмена на JavaScript во всех браузерах
hw_wired 24.01.2025
Копирование текста в буфер обмена стало неотъемлемой частью современных веб-приложений, значительно улучшающей пользовательский опыт и упрощающей работу с контентом. В эпоху активного обмена. . .
Как скрыть клавиатуру на Android
hw_wired 24.01.2025
При разработке Android-приложений часто возникает необходимость управлять видимостью экранной клавиатуры для улучшения пользовательского опыта. Одним из наиболее эффективных способов контроля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru