Вывод форм. Как лучше?

Hugo Borz

Новичок
Вывод форм. Как лучше?

Здравствуйте.
Есть файл с функциями(добавление раздела, добавление статьи в раздел, удаление статьи и т.д).
В него я через скрытое поле формы передаю название, функции и про помощи оператора выбора, запускаю нужную функцию.
У меня вопрос по поводу форм хтмл с которых передаются данные в мой файл с функциями, я хочу сделать все формы в одном файле как лучше это реализовать?
У меня есть два варианта:
1) Занести код формы в базу, а потом передавать по ссылке параметр – id_form, и выводить нужную форму.
2) Прописывать все коды форм в файле а потом при помощи оператора выбора, выводить нужную.
Какой способ лучше использовать?
 

Фанат

oncle terrible
Команда форума
шаблоны форм, как и все остальные шаблоны, держать в файлах на диске.
 

Hugo Borz

Новичок
Ясно. Честно говоря шаблоны еще не учил, сейчас буду учить!
Жалко что в книжке(Кузнецов «Практика создания веб сайтов») о них ничего не сказано.
кмс построена, без их использования!
 

Фанат

oncle terrible
Команда форума
собственно, непонятно, почему такой вопрос возник.
и какое отношение к нему имеет файл с функциями.

формы - это такой же контент, который надо выводить.
почему к ним должны применяться какие-то особые правила?
 

Hugo Borz

Новичок
Дело в том что в книге описывается такая технология – файл с формой, файл с функцией.
Я решил это оптимизировать и сложить все функции в один файл. А вот как быть с формами … Их там штук 10, и все как то не удобно пихать в один файл!
 

Фанат

oncle terrible
Команда форума
не надо складывать все функции в один файл.
да и функции тут нафиг не нужны.

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

вот тебе пример:
PHP:
<? 
mysql_connect();
mysql_select_db("new");
$table="test";
if($_SERVER['REQUEST_METHOD']=='POST') { 
  if ($id=intval($_POST['id'])) {
    $query="UPDATE $table SET name='".mysql_real_escape_string($_POST['name'])."' WHERE id=$id";
  } else {
    $query="INSERT INTO $table SET name='".mysql_real_escape_string($_POST['name'])."'";
  }
  mysql_query($query);
  header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); 
  exit; 
} 
if (!isset($_GET['id'])) { 
  $LIST=array();
  $query="SELECT * FROM $table"; 
  $res=mysql_query($query);
  while($row=mysql_fetch_assoc($res)) $LIST[]=$row;
  include 'list.php';
} else { 
  if ($id=intval($_GET['id'])) {
    $query="SELECT * FROM $table WHERE id=$id"; 
    $res=mysql_query($query);
    $row=mysql_fetch_assoc($res);
    foreach ($row as $k => $v) $row[$k]=htmlspecialchars($v);
  } else {
    $row['name']='';
    $row['id']=0;
  }
  include 'form.php';
} 
?>

form.php
<form method="POST">
<input type="text" name="name" value="<?=$row['name']?>"><br>
<input type="hidden" name="id" value="<?=$row['id']?>">
<input type="submit"><br>
<a href="?">Return to the list</a>
</form>

list.php
<a href="?id=0">Add item</a>
<? foreach ($LIST as $row): ?>
<li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
<? endforeach ?>
 
Сверху