[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как гиперссылкой передать переменую как в форме
Pinoplast
Такая ситуацыя, еть список ссылок, как мне передать переменую через нажатия на них, чтоб дальше я смог зделать выборку по базе.

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


Гиперссылки А, Б. В, .....

после нажатия на них выборка по базе

1. Петров
2. Поляков
3. Пупков ...

как зделать выборку понятно непонятно как переменю прикрепить к гиперссылке чтоб дальше по ней искать!!!!



Спустя 40 минут, 23 секунды (21.02.2009 - 19:53) Sylex написал(а):
PHP
<?php
  echo $_GET
['action'] . '<br>';
  echo $_GET['param1'];

HTML
<a href="?param1=b&amp;action=do">go</a>


ето?

Спустя 16 минут, 47 секунд (21.02.2009 - 20:09) Pinoplast написал(а):
А через метод Post никак нельзя?

Спустя 1 час, 7 минут, 12 секунд (21.02.2009 - 21:17) twin написал(а):
HTML
<input type="hidden" name="Вот_тут_ будет переменная_POST " >

Или сессию... но лучше хидден всё таки в этом случае.

Спустя 37 минут, 2 секунды (21.02.2009 - 21:54) Pinoplast написал(а):
А как это прикрутить к ссылке?

<input type="hidden" name="Вот_тут_ будет переменная_POST " >

Спустя 3 минуты, 20 секунд (21.02.2009 - 21:57) sergeiss написал(а):
Я так думаю, хидден тут не нужен... И сессии тоже не требуются. Проще надо, проще smile.gif

Потому что у человека есть список, из которого он выбирает. Это или текстовый список, или радио-кнопки. Но в любом случае выбранная величина известна. И ежели этот список находится внутри формы, которая отправляется через POST, то при нажатии кнопки типа submit всё нормально отправится.

При этом никаких гиперссылок в "живом" виде не будет - автор же хочет POST использовать!

И всё будет работать "как часы". Можно будет последовательно перемещаться по любому дереву выбора: буквы, фамилии, список чего-то, связанного с этой фамилией... Можно и обратно будет, "вверх" перейти по дереву. Причем, для этого достаточно в той же форме еще одну кнопку сабмит сделать, и анализировать потом, какая из кнопок была нажата.

Спустя 4 минуты, 46 секунд (21.02.2009 - 22:02) twin написал(а):
Не, стоп. Что лучше для автора, известно только ему. Как я понимаю, может я глуп и бестолков, есть необходимость передать значения переменной между страницами... Предложу такой вариант:

HTML
<input type="hidden" name="$_GET["ну_тут_то точно_Ваша_гет_переменная'] " >
Хотя я не уверен, как вообще это всё происходит...

Спустя 6 минут, 1 секунда (21.02.2009 - 22:08) twin написал(а):
А лучше даже так, если нужно переменные GET про (про $_REQUEST[] совсем молчу)
HTML
<?
<form action="?tir_pir=""$_GET["ну_тут_то точно_Ваша_гет_переменная'] " >

Спустя 6 минут, 1 секунда (21.02.2009 - 22:14) sergeiss написал(а):
twin - а зачем ему что-то таким образом передавать между страницами? Ты предлагаешь, чтобы полученную переменную он так передал дальше.

Но автор вопроса достаточно ясно написал, что ему надо перемещаться по дереву выбора (буквы -> фамилии -> что-то связанное с фамилией), и желательно использовать POST. Зачем при этом хидден нужен?

Спустя 56 минут, 17 секунд (21.02.2009 - 23:10) twin написал(а):
Я не знаю, зачем POST, это тайна, покрытая мраком... Если нужна выборка пр первой букве - это одно. Про это и не спрашивали. Но если выбрали, а потом нужно что то отправить из формы, и эта форма работает с методом POST, то так наверно.... Я могу только предполагать.

Спустя 7 минут, 23 секунды (21.02.2009 - 23:17) Viking написал(а):
Цитата
Такая ситуацыя, еть список ссылок, как мне передать переменую через нажатия на них, чтоб дальше я смог зделать выборку по базе.

если надо передавать переменные именно при нажатии на ссылки, то только GET, либо какой ни будь изврат с javascript, там можно и пост, и куки и что угодно

Спустя 25 минут, 18 секунд (21.02.2009 - 23:43) sergeiss написал(а):
Цитата (twin @ 21.02.2009 - 23:10)
....Если нужна выборка пр первой букве - это одно. Про это и не спрашивали.

Ну как это... В самом начале было сказано
Цитата
список букв, дальше выводиться список испольнителей при переходе по букве


Спустя 10 минут, 52 секунды (21.02.2009 - 23:54) bret написал(а):
Если POST'ом - то, как правильно заметил sergeiss, сабмитами
HTML
<form method="post">
<input type="submit" name="surname" value="A" />
<input type="submit" name="surname" value="B" />
...
</form>

Спустя 3 минуты, 10 секунд (21.02.2009 - 23:57) sergeiss написал(а):
bret - одинаковые имена сабмитов - это опечатка у тебя???

Спустя 2 минуты, 43 секунды (21.02.2009 - 23:59) twin написал(а):
Ван момент плиз, если нужен выбор по букве , то наверно нужно и выбирать по букве:
SQL
WHERE MID(`name`,1,1) = "ну_тут_то точно_Ваша_гет_переменная"
Хотя автор однозначно дал понять, что с этим вопросов у него не возникает. А вот метод POST....

Спустя 18 минут, 49 секунд (22.02.2009 - 00:18) sergeiss написал(а):
А что POST?

Давай начнем "кодить" smile.gif, для лучшего взаимопонимания.
Выбор по букве я бы сделал вот так:
PHP
<form action="" method="post">
<
input type="radio" name="letter" value="а">А
<input type="radio" name="letter" value="б">Б
<input type="radio" name="letter" value="в">В
...
<
input type="radio" name="letter" value="я">Я
<input type="submit" name="select_letter" value="Выберите первую букву">


</
form>

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

Не хотите, чтобы жать лишние кнопки? Да нет проблем smile.gif У радио-кнопок, так же как и у списка, есть обработчк OnClick (в ДжаваСкрипте). В нем можно программно сделать сабмит для формы, и тогда не надо будет нажимать дополнительную кнопку. Выбрал букву - сразу перешел к списку фамилий. Выбрал фамилия в списке - перешел дальше.

Спустя 4 минуты, 7 секунд (22.02.2009 - 00:22) Pinoplast написал(а):
вот сайт к примеру http://www.texchange.ru/, биржа копирайтинга, там слева меню по статьям, нажымаеш гиперсылку на авто, выводяться статьи по авто, я так понял там метод get, а я хотелбы чтото подобное только post.

Спустя 15 минут, 31 секунда (22.02.2009 - 00:38) Adil написал(а):
Человек просто хочет спрятать параметры передаваемые в урл. Может хочешь чтобы они выглядели примерно так: ЧПУ

Спустя 1 минута, 46 секунд (22.02.2009 - 00:40) sergeiss написал(а):
Цитата (Pinoplast @ 22.02.2009 - 00:22)
вот сайт к примеру http://www.texchange.ru/, биржа копирайтинга, там слева меню по статьям, нажымаеш гиперсылку на авто, выводяться статьи по авто, я так понял там метод get, а я хотелбы чтото подобное только post.

Дык... Об этом речь и идет как раз smile.gif
PHP
<form action="" method="post" name="letters">
<
input type="radio" name="letter" value="а" onclick="letters.submit()">А
<input type="radio" name="letter" value="б" onclick="letters.submit()">Б
<input type="radio" name="letter" value="в" onclick="letters.submit()">В
...
<
input type="radio" name="letter" value="я" onclick="letters.submit()">Я
<input type="submit" name="select_letter" value="Выберите первую букву">

</
form>

Если JavaScript включен, то тогда сразу же при выборе буквы произойдет переход по выбранному значению, и переменная letter получит значение той буквы, которая будет выбрана.
Если же JS отключен, то тогда надо будет нажать кнопочку.

Работает эта система "как часы".

PS. Берешь любые инпуты (если надо), а не только радиокнопки, и делаешь то же самое с ними.

Спустя 14 минут, 38 секунд (22.02.2009 - 00:54) twin написал(а):
Вово. Тока зачем инпуты, вот так ссылки:
HTML
<form action="" id="form" method="post">
<a href="javascript: document.getElementById('form').submit();return false">У, ё!!!</a>
</form>

Спустя 15 минут, 8 секунд (22.02.2009 - 01:09) sergeiss написал(а):
Цитата (twin @ 22.02.2009 - 00:54)
Вово. Тока зачем инпуты, вот так ссылки:
HTML
<form action="" id="form" method="post">
<a href="javascript: document.getElementById('form').submit();return false">У, ё!!!</a>
</form>

Затем, что JS может быть выключен. И тогда должна быть альтернатива. В моем случае, при выключенном JS, человек даже не поймет ничего. Он просто нажмет кнопку выбора smile.gif

Спустя 15 часов, 6 минут, 34 секунды (22.02.2009 - 16:16) bret написал(а):
Цитата (sergeiss @ 21.02.2009 - 22:57)
bret - одинаковые имена сабмитов - это опечатка у тебя???

В $_POST['surname'] я получал value только нажатой кнопки
Имхо, если вопрос ссылки||кнопки не принципиальный, то лучше юзать js-независимое решение

Спустя 1 час, 3 минуты, 13 секунд (22.02.2009 - 17:19) twin написал(а):
Цитата
Затем, что JS может быть выключен.

Понятно дело, но в вопросе ведь черным по русскому:
Цитата
Такая ситуацыя, еть список ссылок, как мне передать переменую через нажатия на них,

Спустя 1 месяц, 15 дней, 19 часов, 9 минут, 18 секунд (8.04.2009 - 11:28) OdinSon написал(а):
Как по мне, так для таких целей проще использовать БД, обращаясь к ним с помощью запросов из ПХП.
Например вчера набросал такого рода страничку для вывода названий контрагентов:

Итак, вводные:
1. Существует база данных, в которой хранятся названия компаний (таблица comp).
2. Так же в БД есть табличка с алфавитом (таблица alf) (для упрощения кода)
3. В ПХП файлике (view.php), который выводит список прописано подключение к базе.

Итак... реализация:

PHP
//1. Проверка наличия переменной ГЕТ и при наличии присвоение её значения простой переменной (исключительно для дальнейшего упрощения).

if(isset($_GET['letter'])) {$letter $_GET['letter'];}


//2. Выводим на страницу алфавит, оформляя каждую букву в ссылке

$letter_result mysql_query("SELECT letter FROM alf ORDER BY letter");
$letter_myrow mysql_fetch_array($letter_result);
    
echo(
"<center>");
do
{
printf("<a href='view.php?letter=%s'>%s </a>"$letter_myrow['letter'], $letter_myrow['letter']);
}
while (
$letter_myrow mysql_fetch_array($letter_result));
echo(
"</center>");


//3. Выводим в цикле записи из таблицы comp, проверяя, ведется ли отбор по букве.

if (isset($letter)) //Если значение буквы задано с помощью ГЕТ-переменной, то отбираем названия, которые начинаются с заданой буквы
{
$result mysql_query("SELECT name FROM comp WHERE name LIKE '%$letter' ");
$myrow mysql_fetch_array($result);
}
else 
//Если значение не задано, то выбираем все записи
{
$result mysql_query("SELECT name FROM comp");
$myrow mysql_fetch_array($result);
}

do
{
printf("<p>%s</p>",$myrow['name']);
}
while (
$myrow mysql_fetch_array($result));


Получилось несложно и результативно.

ПыСы. Сорри за возможные синтаксические ошибки в коде. На работоспособность именно даный код не проверял user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.