|
|
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
«возможно ли из MySQL возвращать в хтмл значение поля select?» Дело в том что есть такая форма на хтмл <FORM NAME = "tabl_1" METHOD="post" ACTION="tabl1.php";> <TABLE WIDTH="100%" BORDER=2 CELLSPACING=1 CELLPADDING=1 BORDERCOLOR="#8FBC8F"> <TR> <TD ALIGN="left">1</TD> <TD ALIGN="left">Как долго рассматривается ERP- система продается именно этим поставщиком? </TD> <TD ALIGN="left"> <SELECT name="v1" size="1"> <OPTION selected value=1>Нет ответа</OPTION> <OPTION value=2>Ранее</OPTION> <OPTION value=3>С 1980-1985 года</OPTION> <OPTION value=4>С 1985-1990 года</OPTION> <OPTION value=5>С 1995-2000 года</OPTION> <OPTION value=6>С 2000 года</OPTION> <OPTION value=7>С 2001 года</OPTION> <OPTION value=8>С 2002 года</OPTION> <OPTION value=9>С 2003 года</OPTION> <OPTION value=10>С 2004 года</OPTION> <OPTION value=11>С 2005 года</OPTION> </SELECT> </TD> </TR> . . ..аналогичных вопросов в этой таблице 15 . </TABLE> <P ALIGN= CENTER><INPUT TYPE="submit" VALUE="Сохранить" ></TD></P> </FORM> При сохранении данные отправляются в обработчик php, который определяет обновить запись или дописать в базу данные. Для пользователя запускается сессия и по имени определяется есть он в базе или нет. Если он есть, необходимо вернуть выбранные поля, которые он сохранял в предыдущие разы… Не понимаю, как это возможно сделать, с помощью каких средств, если не трудно на примере можно продемонстрировать, как это сделать. Буду очень признательна. Как вариант думаю, что делать это стоит в коде, где происходит авторизация. С помощью Select я выбераю какое поле выбрал пользователь, но как это вернуть в хтмльную форму? <? session_start(); if (!$login || !$pass) { echo "Вы не ввели все необходимые данные.<br>" ."Пожалуйста вернитесь назад и заполните все необходимые поля."; exit; } if(!isset($HTTP_POST_VARS['login'])&&!isset($HTTP_POST_VARS['pass'])) { // Подключение к mysql $mysql = mysql_connect( "localhost", "miit", "miit" ); if(!$mysql) { echo 'Невозможно подключиться к базе данных.'; exit; } // Выбор соответствующей базы данных $mysql = mysql_select_db( "miit" ); if(!$mysql) { echo 'Невозможно выбрать базу данных.'; exit; } // Запрос к базе данных с целью выяснения существования соответствующей записи $query = "select count(*) from user where login = '$login' and pass = '$pass'"; $result = mysql_query( $query ); if(!$result) { echo 'Невозможно выполнить запрос.'; exit; } $count = mysql_result( $result, 0, 0 ); if ( $count > 0 ) { // Комбинация имени и пароля посетителя верна $HTTP_SESSION_VARS['username']=$login; echo '<h1>Вы на месте!</h1>'; echo '<p><a href="tabl1.html">Таблица 1</a></p>'; } else { // Комбинация имени и пароля посетителя не верна echo '<h1>Вы не имеете прав доступа к данному ресурсу!</h1>'; echo '<p><a href="reg.html">Зарегистрироваться</a></p>'; } } ?> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2005, 17:04 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
Если я тебя правильно понял, алгоритм примерно таков: 1) пользователь авторизуется 2) пользователь каким-то образом переходит на страницу с формой и заполняет ее 3) информация из формы сохраняется в базе И теперь тебе надо, чтобы в случае повторного захода этого пользователя на эту форму, значения в выпадающих списках были не по умолчанию, а именно те, которые пользователь выбрал, когда заполнял форму первый раз. Итак, вопрос, "как это вернуть в форму". Да очень просто, надо сравнить значение, полученное из базы, со значением элемента выпадающего списка, и в случае совпадения добавить атрибут SELECTED. [src]<? $dbvalue = 4; // некое значение, сохраненное в БД ?> SELECT name="v1" size="1"> <OPTION selected value=1>Нет ответа</OPTION> <OPTION value=2 <?=($dbvalue==2) ? "SELECTED": ""?>>Ранее</OPTION> <OPTION value=3 <?=($dbvalue==3) ? "SELECTED": ""?>>С 1980-1985 года</OPTION> <OPTION value=4 <?=($dbvalue==4) ? "SELECTED": ""?>>С 1985-1990 года</OPTION> ..... и так далее [/[src] Выглядит конечно жутко коряво, но это именно то, что тебе нужно, если я правильно понял. Для улучшения кода хорошо бы постараться формировать вып. список в цикле, чтобы и проверка была одна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2005, 22:56 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
Не знаю к правильному ли решению я пришла. Переход к таблицам я решила сделать, как tabl_1.php… Туда же вставлять код php, проверяющий наличие записи. Вот кусок скрипта <script Language="php"> // пропущена проверка подключения к базе mysql_select_db("miit"); $result = mysql_query("select * from tabl1 where login='$login'"); if (!$result) echo 'Данная запись не присутствует в таблице, ее не надо возвращать'; else { echo 'Данная запись присутствует, нам надо ее вернуть!'; $tb1 = mysql_query("select * from tabl1 where login='$login'"); $row = mysql_fetch_array($tb1); // а вот дальше? } Таким образом получается создается массив данных из таблицы tabl1 со всеми значениями столбцов. Далее идет сама форма <FORM NAME = "tabl_1" METHOD="post" ACTION="tabl1.php";> . . . <TR> <TD ALIGN="left">1</TD> <TD ALIGN="left">Как долго рассматривается ERP- система продается именно этим поставщиком? </TD> <TD ALIGN="left"> <SELECT name="v1" size="1"> <OPTION value=1 selected>Нет ответа</OPTION> <OPTION value=2>Ранее</OPTION> <OPTION value=3>С 2001 года</OPTION> <OPTION value=4>С 2002 года</OPTION> <OPTION value=5>С 2003 года</OPTION> <OPTION value=6>С 2004 года</OPTION> <OPTION value=7>С 2005 года</OPTION> </SELECT> </TD> </TR> . . . // и т.д. </FORM> Получается, что если пользователь впервые заполняет данную таблицу, то ему отображается обычный вариант, а если уже заполнял, то надо передать значения имеющихся записей. Вопрос, как организовать присвоение каждому полю, поля именованы, как v1,v2 и т.д. и выводить это в форму? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 17:52 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
Ты ничего не сделала... Код: plaintext Код: plaintext автор Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Это условие всегда будет верно, есил запрос к базе выполнены корректно. Корректным результатом работы будет даже если запрос не найдет не единой строки. Я так и не увидел, где ты в скрипте указываешь варианты, выбранные из предыдущего сеанса? ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 18:14 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
4m@t!c, варианты я не указываю, потому что не знаю как их передавать в форму. На сколько понимаю это должно быть что-то описанное taj. Просто как это генерировать, чтобы данные записывались так как заполнял пользоваетль. И как написать это корректно, то о чем ты говорил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 18:24 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
Если тебе нужна проверка существования записи в таблице, то так и делай. Т.е. ты должна узнать кол-во строк, которое возвращает запрос. Если строк - ноль, то записи иначе такая запись есть (кстати, у тебя поле login уникально?). Разберись, пожалуйста. 1. Что возвращает функция mysql_query(). 2. Как узнать, какое кол-во строк вернул запрос. Ответы на эти 2 вопроса ты найдешь здесь . Когда прочтешь и поймешь - перепиши проверку правильно. По поводу того, как более-менее сносно реализовать "запоминание". Я бы создал две таблицы. В первой - хранил бы вопросы, во второй - ответы на эти вопросы. Затем, я бы создал функцию, которая брала бы данные из этих таблиц и формировала бы вывод тега SELECT. В функции был бы параметр, который бы передавал значение выбранного "значение по умолчанию" для тега SELECT. ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2005, 19:47 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
Саму форму я поменяла <SELECT name="v1" size="1"> <OPTION selected value=1>Нет ответа</OPTION> <OPTION value=2 <?=($v1==2) ? "SELECTED": ""?>>Ранее</OPTION> <OPTION value=3 <?=($v1==3) ? "SELECTED": ""?>>С 2000 года</OPTION> <OPTION value=4 <?=($v1==4) ? "SELECTED": ""?>>С 2001 года</OPTION> <OPTION value=5 <?=($v1==5) ? "SELECTED": ""?>>С 2002 года</OPTION> <OPTION value=6 <?=($v1==6) ? "SELECTED": ""?>>С 2003 года</OPTION> <OPTION value=7 <?=($v1==7) ? "SELECTED": ""?>>С 2004 года</OPTION> <OPTION value=8 <?=($v1==8) ? "SELECTED": ""?>>С 2005 года</OPTION> </SELECT> Перед кодом хтмл, у меня идет код PHP if (mysql_num_rows($result)>0) { echo 'Данная запись присутствует, нам надо ее вернуть!'; $tb1 = mysql_query("select * from tabl1 where login='$login'"); $row = mysql_fetch_array($tb1); echo htmlspecialchars( stripslashes($row["v1"])); v1 выводится правильно, а вот данные не меняются в форме. Может я что-то не правильно поняла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 01:15 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
Имя login уникально, оно передается с помощью сеансов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 01:16 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
Найди 10 различий между v1 и $row['v1'].... ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 10:55 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
emeliИмя login уникально, оно передается с помощью сеансов. Переведи..;))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 10:56 |
|
||
|
возможно ли из MySQL возвращать в хтмл значение поля select?
|
|||
|---|---|---|---|
|
#18+
[quot 4m@t!c]Найди 10 различий между v1 и $row['v1'].... [quot] Уже дошла до этого, методом проб и ошибок :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2005, 13:14 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=475&tid=1478335]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 404ms |

| 0 / 0 |
