![]() |
PHP - Передача полезного значения(части) массива из одного скрипта php, в другой.
Доброй ночи коллеги.
Прошу помощи и сильно не пинать, т.к. с пхп знаком только с прошлых выходных. Ситуация следующая. Задача написать веб морду к БД mysql, в которой имеются записи о клиентах организации. Пользователь забивает фамилию, допустим - Иванов. и тут оказывается что после обработки массива, клиентов с такой фамилией - 3 человека (у всех записей есть свой уникальный идентификатор - ID). Выбираем нужного нам человека, тыкаем на него и открывается следующий скрипт, который с помощью SQL запроса (основываясь на выбранном ID) заполняет HTML табличку и сотрудник пускает эти данные на распечатку -например договор на нужного Иванова И.И. ... как передать переменную методом POST для обработки введенной информации массива - разобрался. Но возникла проблема с передачей нужной части массива из одного скрипта (findscript.php) в другой (createdoc.php) (допустим ТОЛЬКО 2й Иванов с ID = 123 из всех трех найденных должен быть внесен в документ, для последующей печати). Заранее большое спасибо за любую подсказку или ссылку! p.s.: прошу прощения за избыточность кода!) файл 1 PHP код:
PHP код:
|
радио-кнопки не подходят? <input type="radio" name="name" value="<ID человеков>" />. В скрипте ловите $_POST['name'].
|
так а как мне передать нужное мне значение из массива методом POST? У меня же массив в php и как перекинуть его на другую страницу?
если value="<ID человеков> то там указывается конкретный номер...т.е. переменную $id - подставить не могу...он так её и передаст как текст, и будет $_POST['name'] = буковки $id. .....или же нет? |
зачем передавать что-то, если можно снова сформировать этот массив? сделайте функцию/метод для формирования массива....
обычно скрытые данные передаются через input type="hidden" name="" value="..." если name будет типа array[key] - на выходе будет $_POST['array']['key'] |
Спасибо за ответы!
...но представим что пользователь вбивает в поиске "Иванов" ...страничка отображает ряд найденных Ивановых, среди которых и тот кто нам нужен. Далее тыкнув на него ....она ожидает что отчет будет сформирован только по тому Иванову, которого она выбрала. ...теперь что получается. Генеря страничку с выводом на экран всего массива с "Ивановыми", у нас уже есть тот уникальный идентификатор ($id), который теперь осталось только передать следующей странице (___.php) в SQL запрос и просто сделать выборку заполняя html-шаблон. Дико извиняюсь но в упор не понимаю зачем ещё раз генерить массив на следующей странице. Объясните пожалуйста! Может я просто не правильно мыслю? |
ilka, конкретизируйте. Напишите пример массива, который хотите получить, элементы массива, значения.
Если будет галочка/радио-кнопка, то получите ID (или чего там), на основе которого можно вытянуть из базы недостающую инфу для распечатки. |
Добрый день)
попробовал с радио кнопкой..... на следующей странице php выдал текст "array" и всё =( ...наверное очень криво объясняю...извините...попробую ещё раз --------------------------------------------------------- 1. на первой странице вводится фамилия клиента, после чего все данные идут на след страницу => ![]() --------------------------------------------------------- $last = $_POST['searchterm']; //переданная фамилия $query = "SELECT * FROM (info) WHERE Last_Name like '%$last%'"; $result = mysql_query($query); $number = mysql_num_rows($result); /* Напечатать всех в красивом виде*/ 2. вот сдесь начинается самое интересное - обрабатываем массив, который красиво отобразится в html на страничке оператора, а в массиве информация по трем клиентам и в каждой переменной $lastname $middlename $name $phone $id есть три значения, которые по порядку выведутся в HTML каждый в своей табличке и у каждого будет кнопка "Сформировать договор" Нажав на одну из получившихся трех (в данном случае) кнопок в интересующей нас табличке. Каким то образом переменная $id (так проще всего, по скольку в БД это уникальное значение и основываясь на нем можно составить точный запрос) -но не весь массив! а только одно единственное значение! должна передаться в следующую страницу (Картинка как оно все выглядит) $i = 0; IF ($number == 0) { print "<center><P><P>Клиент в базе данных не найден.</center>"; } ELSEIF ($number > 0) { print "<center><P><P><b>Количество найденых клиентов в базе данных: $number</b><BR><BR>"; while ($i < $number){ $lastname = mysql_result($result,$i,"Last_Name"); $middlename = mysql_result($result,$i,"Middle_Name"); $name = mysql_result($result,$i,"Name"); $phone = mysql_result($result,$i,"Phone"); $id = mysql_result($result,$i,"ID"); ?> <table border=5 rules="all" width="600" cellpadding="5"><td align="left"> <tr><td> <?php print "<b> $lastname $name $middlename</b> "; ?> </td> <th> <form action="createdoc.php" target="_self" method="post"><input type="submit" value="Сформировать договор"> =========================================== скорее всего тут нужно как то передать $id =========================================== </form> </th></td> </tr> <?php print "<BR><BR>"; $i++; ?> =============================================================== здесь генерится следующая табличка - пока массив не закончится. =============================================================== <?php } } mysql_close($link); ?> ......где то уперся лбом и не пойму что делать ....а точнее что искать( |
mysql_query - там посмотрите примеры правильного перебора результата.
Цитата:
HTML код:
<form action="createdoc.php" method="post"> или просто ссылку без формы HTML код:
<a href="createdoc.php?ID=<?php echo $id; ?>">Сформировать договор</a> в createdoc.php обработайте ID и выводите что надо. |
Sham, Огромное Вам человеческое спасибо!!!!!!!!!!!!!!!!!!!!!!!!!
Всё заработало!!! Буду продолжать ваять далее) |
Время: 03:38. |
Время: 03:38.
© OSzone.net 2001-