PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Бронислав
Отправлено: 22 Августа, 2017 - 19:35:32
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Всем привет! Подскажите, пожалуйста, как можна создать ссылку, подставляя параметры из адресной строки и из формы?
Данные из адресной строки принимаются и подменяются:
Цитата:
<?PHP
if (!empty($_GET['utm_term'])) {
$utm_term = strip_tags($_GET['utm_term']);
$encoding = mb_detect_encoding($utm_term);
$utm_term = mb_convert_encoding($utm_term, 'UTF-8', $encoding);
$arr = [
'принимаемое_значение'=>'новое_значение',
...
$utm_term = strtr($utm_term, $arr);
} else {
$utm_term = '';
...
?>
...
<meta http-equiv="refresh" content="1; url=https://xxx.xxx?x=xxx&y=yyy&z=<?=$utm_term?>

Данные из формы обрабатываются аналогичным образом с подменой значений:
Цитата:
<form method="post" action="form_link.php">
<div class="table_form">
<div class="table_form_td"><input class="table_form_input" type="text" name="from" placeholder="xxx"></div>
<div class="table_form_td"><input class="table_form_input" type="text" name="to" placeholder="xxx"></div>
<div class="table_form_td"><input class="table_form_input_button" type="submit" value="xxx"></div>
</div>
...
if (!empty($_POST['from'])) {
$utm_term = strip_tags($_POST['from']);
...
$arr2 = [
'принимаемое_значение'=>'новое_значение',
...
$utm_term = strtr($from, $arr2);
} else {
$from = '';
...

Как связать данные из GET`a и POST`a и сформировать ссылку вида
Цитата:
url=https://xxx.xxx&dlink=https://yyy.yyy/<?=$from?>/<?=$to?>&qqq=<?=$utm_term?>

Заранее спасибо!
 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 17:11:07
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 973
Дата рег-ции: Февр. 2014  


Помог: 33 раз(а)




Бронислав пишет:
как можна создать ссылку, подставляя параметры из адресной строки и из формы?
Одним запросом передать сразу пост и гет? Это не возможно. Или пост (по нажатию на кнопку), или гет (по клику по ссылке). А зачем вам сразу два метода одновременно? Ссылку сгенерировать можно любым из них.
 
 Top
Бронислав
Отправлено: 24 Августа, 2017 - 17:26:55
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель пишет:
Бронислав пишет:
как можна создать ссылку, подставляя параметры из адресной строки и из формы?
Одним запросом передать сразу пост и гет? Это не возможно. Или пост (по нажатию на кнопку), или гет (по клику по ссылке). А зачем вам сразу два метода одновременно? Ссылку сгенерировать можно любым из них.

Два значения берутся из формы и указывают разделы в будущей ссылке, и два значения берутся из адресной строки, передаются как параметр (после "&") для отображения в статистике.
 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 17:30:02
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 973
Дата рег-ции: Февр. 2014  


Помог: 33 раз(а)




Бронислав пишет:
Строитель пишет:
Бронислав пишет:
как можна создать ссылку, подставляя параметры из адресной строки и из формы?
Одним запросом передать сразу пост и гет? Это не возможно. Или пост (по нажатию на кнопку), или гет (по клику по ссылке). А зачем вам сразу два метода одновременно? Ссылку сгенерировать можно любым из них.

Два значения берутся из формы и указывают разделы в будущей ссылке, и два значения берутся из адресной строки, передаются как параметр (после "&") для отображения в статистике.
Ну тогда надо значения, принятые первыми (из формы), где то хранить, т.к. после приёма значений из адресной строки, ранее принятые значения из формы будут сброшены.
 
 Top
Бронислав
Отправлено: 24 Августа, 2017 - 17:59:06
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Цитата:
Ну тогда надо значения, принятые первыми (из формы), где то хранить, т.к. после приёма значений из адресной строки, ранее принятые значения из формы будут сброшены.

Первыми берутся значения из адресной строки http://example.com?utm_term=...&utm_content=... Они обрабатываются скриптом из 1-го сообщения, подменяются и формируют ссылку.
В эту же ссылку нужно вставить данные, которые вводятся в поля формы, обрабатываемые подобным скриптом.
Т.е. получается, нужно передать get, обработать и сохранить, а данные из post обработать и прикрутить к ним get, верно?
Подскажите, пожалуйста, как это сделать.

(Отредактировано автором: 24 Августа, 2017 - 18:20:31)

 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 18:35:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 973
Дата рег-ции: Февр. 2014  


Помог: 33 раз(а)




Бронислав пишет:
Т.е. получается, нужно передать get, обработать и сохранить, а данные из post обработать и прикрутить к ним get, верно?
Ну да, я об этом и говорил чуть выше. Чуть позже напишу пример (сейчас не много занят).
 
 Top
Строитель Модератор
Отправлено: 25 Августа, 2017 - 01:16:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 973
Дата рег-ции: Февр. 2014  


Помог: 33 раз(а)




Скопируйте код целиком, и запустите в браузере. После тестирования вам станет понятен принцип его работы, и тогда подправите в коде ссылки, а так же искомые и заменяемые значения (всё прокомментировано):
Спойлер (Отобразить)
 
 Top
htmaker
Отправлено: 25 Августа, 2017 - 14:21:58
Post Id



Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Как насчет использования Ajax запроса? Ведь можно отправить таким образом POST-запрос, с необходимыми GET параметрами.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#button').on('click', function(event) {
  3.         var inpfrom = $("input[name='from']"), inpto = $("input[name='to']");
  4.                
  5.         $.ajax({
  6.                 url: '/ajax.php?x=xx&y=yy',
  7.                 type: 'POST',
  8.                 data: {
  9.                         inpfrom: inpfrom.val(),
  10.                         inpto: inpto.val(),
  11.                 },
  12.                 success: function (result) {
  13.                        
  14.                 }
  15.         });
  16.  
  17. });
  18.  
  19.  

(Отредактировано автором: 25 Августа, 2017 - 14:22:39)

 
 Top
Бронислав
Отправлено: 05 Сентября, 2017 - 23:54:04
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель пишет:
Скопируйте код целиком, и запустите в браузере. После тестирования вам станет понятен принцип его работы, и тогда подправите в коде ссылки, а так же искомые и заменяемые значения (всё прокомментировано):
Спойлер (Отобразить)

Спасибо большое! Переделал под себя, больше времени заняло интегрирование в шаблон wordpress)
А можно сделать так, чтобы форма отображалась, если параметров после "?" нет?
 
 Top
Строитель Модератор
Отправлено: 06 Сентября, 2017 - 00:03:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 973
Дата рег-ции: Февр. 2014  


Помог: 33 раз(а)




Бронислав пишет:
А можно сделать так, чтобы форма отображалась, если параметров после "?" нет?
Т.е., что бы форма отображалась всегда?
 
 Top
Бронислав
Отправлено: 06 Сентября, 2017 - 13:11:36
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель пишет:
Бронислав пишет:
А можно сделать так, чтобы форма отображалась, если параметров после "?" нет?
Т.е., что бы форма отображалась всегда?

Ну да
 
 Top
Строитель Модератор
Отправлено: 06 Сентября, 2017 - 15:04:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 973
Дата рег-ции: Февр. 2014  


Помог: 33 раз(а)




Бронислав пишет:
Ну да
Так напишите просто вывод переменной с формой:
 
 Top
Бронислав
Отправлено: 06 Сентября, 2017 - 15:23:09
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель пишет:
Бронислав пишет:
Ну да
Так напишите просто вывод переменной с формой:

ц..элементарно ведь)
Спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB