RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

Динамическая генерация форм.

Автор: Аркадий Бабулин Сайт: http://www.webscript.ru/     Рейтинг: N/A из 7       <<НАЗАД
   
   
   Иногда возникает необходимость в создании форм, содержание которых зависит от поведения пользователя или динамически изменяемых данных, которые берутся из базы данных. Как правило основную трудность на первых порах вызывает то, что содержимое тех же списков заранее неизвестно. Есть предложение рассмотреть пример, как это можно обойти.
   
   Итак, вводная:
   В некой БД существует таблица следующего вида:
   Number Name Address
   1 Alex Moscow...
   2 Piter St.Piter...
   3 Paul Paris ...
   ... ... ...
   
   
   Соответственно в таблицу могут вноститься изменения со стороны пользователей. Задача состоит в том, чтовы вывести содержимое таболицы (размер которой заранее неизвестен) в список.
   Итак приступим: <?php
   ...
   // Процесс коннекта с базой опустим, это уже описано мною.
   ...
   // Выбираем информацию из таблицы
   $table = mysql_query("SELECT * FROM table" or die("Не могу сделать выборку из таблицы");
   // Готовим форму
   <form action="script.php">
   <select name="list">
   // Генерим список посредством цикла while
   while ($res = mysql_fetch_array($table))
   {
   // Формируем строку списка
   $out_string = $res["number"]." ".$res['Name"]." ".$res["Address"];
   // Выводим сформированную строку
   echo"<option value=".$res[number].">".$out_string."";
   }
   </select>
   </form>
   ?>
   Соответственно вид у нашего списка будет такой:
   
   1 Alex Moscow...2 Piter St.Piter...3 Paul Paris...
   Таким приемом можно сгенерить любой список из любого источника, будь то база данных или обчный текстовый файл.
   Код, для формирования списка из файла приведен ниже:
   Робчее окно, сосвтоящее из двух фреймов:
   <?php
   <html>
   <frameset rows="100,*" frameborder="1" bordercolor="#000000" framespacing="0">
   <frame name="view" src="view.php">
   <frame name="add" src="add.php">
   </frameset>
   </html>
   ?>
   Скрипт для просмотра информации из файла (информация хранится в файле в виде <номер строки>:<Имя>. Как вы понимаете, формат записи может быть любым):
   <?php
   $viewfile = file("file.log");
   echo"<html><head></head><body><form action=add.php method=POST>
   <input type=hidden name=action value=del><select name=posist>";
   for ($step=0;$step {
   $positions = explode(":",$viewfile[$step]);
   echo"".$positions[0]." -- ".$positions[1]."</option>";
   }
   echo"</select><input type=submit value=Delete></form></body></html>";
   ?>
   Непосредственно обработчик:
   <?php
   switch ($action)
   {
   case 'add':
   $file_size = file("file.log");
   $addfile = fopen("file.log","a+");
   $add_string = (sizeof($file_size)+1).":".$names."\n";
   fwrite($addfile,$add_string);
   fclose($addfile);
   Header("Location: add.php");
   break;
   case 'del':
   $file_del = file("file.log");
   $file_repl = fopen("file.log","w");
   $step = 1;
   while(list($line_num, $line) = each($file_del))
   { $line_pos = explode(":",$line);
   if ($line_num == ($posist-1)):
   else:
   $line = $step.":".$line_pos[1];
   fwrite($file_repl,$line);
   $step++;
   endif;
   }
   fclose($file_repl);
   echo"<a href=view.php target=view>Вернуться к списку</a>";
   break;
   default:
   echo"<a href=view.php target=\"view\">Обновить лист</a><br><form action=".$PHP_SELF."
   method=POST><input type=hidden name=action value=add>Ваше имя: <input type=text name=names>
   <input type=submit value=ADD>";
   break;
   }
   ?>
   
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool