Форма обратной связи с указанием параметра в ссылке (ссылка#...)

ishimov
На сайте с 08.10.2010
Offline
141
819

Есть форма обратной связи на странице сайт.ру/форма

При ее отработке на нужный е-мэил падает письмо в котором указывается содержание формы и ссылка от куда она отправлена (в данном случае сайт.ру/форма)

Нужно, сделать так, чтобы если форма отработает со страницы сайт.ру/форма#ид

В полученном письме тоже был указан адрес сайт.ру/форма#ид

На данный момент в письме #ид не отображается.

Возможно ли это вообще? В какую сторону копать чтобы реализовать?

Заранее спасибо!

Сопровождение тендеров (http://good-tender.ru) от Good-tender.Ru - обслуживание по всей России. А также кладезь полезной информации в сфере госзакупок по 44-ФЗ и 223-ФЗ
ДП
На сайте с 23.11.2009
Offline
203
#1

Копать в сторону подстановки хеша (то, что после решетки) из ссылки в скрытое поле формы через JS. Ну или если форма просто аяксом отправляется - то в передаваемые данные.

AH
На сайте с 18.03.2006
Offline
204
#2
ishimov:
Есть форма обратной связи на странице сайт.ру/форма

При ее отработке на нужный е-мэил падает письмо в котором указывается содержание формы и ссылка от куда она отправлена (в данном случае сайт.ру/форма)

Нужно, сделать так, чтобы если форма отработает со страницы сайт.ру/форма#ид
В полученном письме тоже был указан адрес сайт.ру/форма#ид

На данный момент в письме #ид не отображается.

Возможно ли это вообще? В какую сторону копать чтобы реализовать?

Заранее спасибо!

На PHP то , что после # не вычислить.

На JavaScript можно , получив значение location.search.substring(1);

Чтобы передать это значение в PHP , можно использовать ajax, а далее уже в PHP получаемый результат добавлять к ссылке в тексте письма.

Цены на регистрацию доменов ( https://1reg.online/domains.price ).
psics
На сайте с 02.04.2009
Offline
130
#3

2 варианта получаешь текущий урл

и вставляешь в скрытое поле с помощью js (window.location.href) или на php ($_SERVER - погугли)

AH
На сайте с 18.03.2006
Offline
204
#4
psics:
2 варианта получаешь текущий урл
и вставляешь в скрытое поле с помощью js (window.location.href) или на php ($_SERVER - погугли)

к сожалению, но на PHP невозможно вычислить значение после решетки, так как решетка это сценарий который обрабатывается браузером, а не сервером.

psics
На сайте с 02.04.2009
Offline
130
#5
Art-Host:
к сожалению, но на PHP невозможно вычислить значение после решетки, так как решетка это сценарий который обрабатывается браузером, а не сервером.

Точно не помню, но а если человек переходит по ссылке с # - с перезагрузкой. Тогда мб и сработает...

AH
На сайте с 18.03.2006
Offline
204
#6
psics:
Точно не помню, но а если человек переходит по ссылке с # - с перезагрузкой. Тогда мб и сработает...

не сработает, php не видит ни символа # в URL, ни то что находится за ним, проверьте, если не верете,

print $_SERVER['REQUEST_URI']; выведет значение до решетки, дальше он ничего не видит.

M
На сайте с 04.12.2013
Offline
223
#7

А почему именно решетка? Вон у меня:

/contact

и

/contact/bla-bla-bla

и еще партнерские есть

/contact/bla-bla-bla?p=<партнерский идентификатор>

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
W
На сайте с 09.04.2013
Offline
46
#8

Вот пример

test.php


<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>testform</title>
</head>
<body>
<?php if (empty($_POST)): ?>
<div id="info" style="display:none">
Эта ссылка без хэша!<a href="#" id="link">Вот</a> с хэшем.
</div>
<form action="<?=basename(__FILE__)?>" method="post">
<label>
Имя:
<input type="text" name="name">
</label>
<label>
Телефон:
<input type="tel" name="tel">
</label>
<input type="hidden" name="hash" id="hash">
<input type="submit">
</form>
<script>
document.addEventListener('DOMContentLoaded', function(){
if(window.location.hash) {
document.getElementById('hash').value=window.location.hash.substring(1);
}else{
document.getElementById('info').style.display='block';
}
var link = document.getElementById("link");
link.addEventListener("click",function(e){
e.preventDefault();
document.location.replace('<?=basename(__FILE__)?>#asd');
document.location.reload();
},false);
}, false);
</script>
<?php else:
echo 'Имя: ',$_POST['name'],'<br>';
echo 'Телефон: ',$_POST['tel'],'<br>';
echo 'Хеш: ',$_POST['hash'],'<br>';
endif; ?>
</body>
</html>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий