Форумы портала PHP.SU » » Вопросы новичков » Создание ссылки из GET и POST-параметров

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

1. Бронислав - 22 Августа, 2017 - 19:35:32 - перейти к сообщению
Всем привет! Подскажите, пожалуйста, как можна создать ссылку, подставляя параметры из адресной строки и из формы?
Данные из адресной строки принимаются и подменяются:
Цитата:
<?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?>

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

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

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

Первыми берутся значения из адресной строки http://example.com?utm_term=...&utm_content=... Они обрабатываются скриптом из 1-го сообщения, подменяются и формируют ссылку.
В эту же ссылку нужно вставить данные, которые вводятся в поля формы, обрабатываемые подобным скриптом.
Т.е. получается, нужно передать get, обработать и сохранить, а данные из post обработать и прикрутить к ним get, верно?
Подскажите, пожалуйста, как это сделать.
6. Строитель - 24 Августа, 2017 - 18:35:01 - перейти к сообщению
Бронислав пишет:
Т.е. получается, нужно передать get, обработать и сохранить, а данные из post обработать и прикрутить к ним get, верно?
Ну да, я об этом и говорил чуть выше. Чуть позже напишу пример (сейчас не много занят).
7. Строитель - 25 Августа, 2017 - 01:16:15 - перейти к сообщению
Скопируйте код целиком, и запустите в браузере. После тестирования вам станет понятен принцип его работы, и тогда подправите в коде ссылки, а так же искомые и заменяемые значения (всё прокомментировано):
Спойлер (Отобразить)
8. htmaker - 25 Августа, 2017 - 14:21:58 - перейти к сообщению
Как насчет использования 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.  
9. Бронислав - 05 Сентября, 2017 - 23:54:04 - перейти к сообщению
Строитель пишет:
Скопируйте код целиком, и запустите в браузере. После тестирования вам станет понятен принцип его работы, и тогда подправите в коде ссылки, а так же искомые и заменяемые значения (всё прокомментировано):
Спойлер (Отобразить)

Спасибо большое! Переделал под себя, больше времени заняло интегрирование в шаблон wordpress)
А можно сделать так, чтобы форма отображалась, если параметров после "?" нет?
10. Строитель - 06 Сентября, 2017 - 00:03:03 - перейти к сообщению
Бронислав пишет:
А можно сделать так, чтобы форма отображалась, если параметров после "?" нет?
Т.е., что бы форма отображалась всегда?
11. Бронислав - 06 Сентября, 2017 - 13:11:36 - перейти к сообщению
Строитель пишет:
Бронислав пишет:
А можно сделать так, чтобы форма отображалась, если параметров после "?" нет?
Т.е., что бы форма отображалась всегда?

Ну да
12. Строитель - 06 Сентября, 2017 - 15:04:16 - перейти к сообщению
Бронислав пишет:
Ну да
Так напишите просто вывод переменной с формой:
13. Бронислав - 06 Сентября, 2017 - 15:23:09 - перейти к сообщению
Строитель пишет:
Бронислав пишет:
Ну да
Так напишите просто вывод переменной с формой:

ц..элементарно ведь)
Спасибо!

 

Powered by ExBB FM 1.0 RC1