| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > передача параметра при переходе по ссылке |
| Автор: Sliva 18.12.2007, 08:06 |
| У меня такая проблема: создаю таблицу из селект-запроса, в таблице хранится список имен: Иванов Петров Сидоров ... Каждое имя является ссылкой, при щелчке на имени - открывается новый php-сценарий, которому должно передаваться ИМЯ с первой странице, по которому щелкнул пользователь. Как запомнить это имя для нового сценария. Я использую $_SESSION['name'] при заполнении таблицы, но в ней оказывается последнее имя в таблице, а мне надо то, по которому кликнул пользователь. Помогите, пожалуйста! |
| Автор: Feldmarschall 18.12.2007, 09:48 |
| Так по ссылке и передавать. <a href=scenario.php?name=<?=$name?>> только лучше передавать не имя, а id |
| Автор: Sliva 18.12.2007, 09:53 | ||
| Так имен-то много, они из запроса все выбираются. А мне надо запомнить ТО ИМЯ, по которому кликнет пользователь Вот код:
|
| Автор: Feldmarschall 18.12.2007, 10:06 | ||
| повторяю. запоминать не надо. надо передавать. по ссылке. 6-я строчка твоего кода:
передавать желательно не имя, а id |
| Автор: Sliva 18.12.2007, 10:29 | ||
Я попробовала - не получается так обратится |
| Автор: skyboy 18.12.2007, 10:40 |
| $_GET['name'] |
| Автор: Sliva 18.12.2007, 10:43 |
| А если в сценарии указан method POST ? И его надо использовать. Или по-другому никак не получится? Я исправила в сценарии на GET, вызываю $_GET['name'] , а у меня ошибка undefinded index: name in ... |
| Автор: Sliva 18.12.2007, 10:57 | ||||
в
Да. Смысл скрипта: Надо с одной странички (нажав на имя) попасть на другую, а по имени (на которое нажал пользователь) выбирать и отображать на второй страничке данные того, чье имя выбрал пользователь
Да |
| Автор: Feldmarschall 18.12.2007, 11:02 |
| Отлично. Стандартная задача. Используется на миллионах сайтов. Метод POST для этого не нужен. Посмотри на адресную строку, когда переходишь по ссыке - а в ней-то имя есть? |
| Автор: bars80080 18.12.2007, 11:41 | ||||
ладно, в роли гуру выступлю я и поведаю волшебство php
с поправкой на твои запросы и таблицы в page2.php
|
| Автор: Sliva 18.12.2007, 11:42 | ||
| Нет, в том-то и дело! Я знаю, что если метод GET, то в адрессной ссылке должны прописываться данные. Метод GET я указала:
|
| Автор: bars80080 18.12.2007, 11:47 |
| если ты реализуешь на каждое имя кнопку с формой, то это мягко говоря неправильное решение ибо слишком много не нужной (не смысловой инфо), лучше реализуется ссылками |
| Автор: Sliva 18.12.2007, 11:53 | ||
Нет, у меня табличка - и каждое имя - это ссылка на след. сценарий. НО: Это имя я должна передать в этот второй сценарий, чтобы потом по этому имени делать запрос |
| Автор: Feldmarschall 18.12.2007, 12:29 |
| Sliva, послушай. Ты что - никогда простых сайтов, на HTML не делала? Зачем тебе здесь форма, если у тебя обыкновенные ссылки? послушай, вот такой код у тебя работает: file.php <a href=file2.php?name=Vasya>click</a> file2.php <? echo $_GET['name'] ?> ? а когда кликнула по ссылке - что видно в адресе? Скопируй адрес сюда. |
| Автор: bars80080 18.12.2007, 12:32 | ||||
как это сочетается с
и вообще, код в студию! |
| Автор: Feldmarschall 18.12.2007, 12:37 |
| Мне кажется, что человек начинает осваивать PHP и просто думает, что в PHP какие-то нуждны особенные методы для навигации. Отличающиеся от таковой в HTML. |
| Автор: Sliva 19.12.2007, 15:15 | ||
да |
| Автор: Feldmarschall 19.12.2007, 15:19 |
| Sliva, страницы, которые генерирует PHP - это самые обычные HTML страницы. Ладно, с этим разобрались. А с передачей параметра по ссылке? Твой код работает? А мой, который я давал выше? |
| Автор: bars80080 19.12.2007, 15:28 |
| многоуважаемая Слива, нам же интересно, нам нетерпится узнать, а что же у вас получилось получилось ли вообще, а то говорим и впустую а если бы код показали, вообще было бы супер вопрос к модераторам: а есть ли тема: как правильно задать вопрос, чтобы тебе ответили по-моему она должна быть прикреплена абсолютно во всех форумах если я не разглядел, значит хорошо спрятали главнокомандующий, а чёй-то ты с "опытного" перекатился на "новичок"? |
| Автор: Sliva 19.12.2007, 15:29 |
| Да, работает Все генерируется, все хорошо |
| Автор: bars80080 19.12.2007, 15:30 |
| тогда и тему можно пометить галочкой во-о-он там, внизу... |
| Автор: Sliva 19.12.2007, 15:33 | ||
Если есть замечания - очень прошу указать их. |
| Автор: Feldmarschall 19.12.2007, 15:49 | ||
| Sliva, можно пару замечаний? во-первых, функция processData(); представляется мне несколько излишней. возможно, в будущем она начнет выполнять какие-то функции, но в нынешнем виде она не делает вообще ничего. во-вторых, непонятно, как вообще работает этот код. в функцию print_table передается переменная $query_host, которая нигде выше не определяется. в-третьих, не забывай в page2.php обрабатывать переменную $_GET['id'], чтобы не возникало ошибок и атак. в-четвертых, атрибуты Html тегов надо брать в кавычки. поэтому echo "\t\t<td><a href=\"page2.php?id=$row[0]\">$row[1]</a></td>\n"; и вообще, я бы переписал этот кусок так:
а функция тут, по-моему, не нужна |
| Автор: Sliva 19.12.2007, 15:56 |
| |
| Автор: Feldmarschall 19.12.2007, 16:04 |
| во-первых, массив $_GET не надо делать доступным. он и так доступный всегда. во-вторых, несколько странно хотеnь сделать доступной одну переменную($_GET) , а писать global $HTTP_GET_VARS; - т.е., другую. в-третьих, в этом скрипте ни $_GET, ни $HTTP_GET_VARS не нужны вовсе. в-четвертых, массив $HTTP_GET_VARS использовать не имеет смысла, поскольку он устарел и есть $_GET в-пятых, делать отдельную функцию, чтобы переменная была доступна в другой - несколько эээ... неправильно. почитай, для чего нужен оператор http://php.net/global |