|
|
|
|
|
для: ndach
(12.08.2004 в 10:53)
| | thanks, я усе понял, ща буду ТВОРИТЬ | |
|
|
|
|
|
|
|
для: cheops
(12.08.2004 в 09:50)
| | У меня второй скрипт одновременно является скриптом отображения инфы | |
|
|
|
|
|
|
|
для: ndach
(12.08.2004 в 07:33)
| | А зачем кнопка во втором скрипте? После добавления инфомации следует ухдить (редиректом) от туда - обатно к форме или к странице, где происходит отображение результатов добавления. Если кнопка всё-таки нужна, то как я выше писал, а s1271tvg ниже :), можно при помощи if всегда ограничить добавление информации в базу данных одним разом. | |
|
|
|
|
|
|
|
для: ndach
(11.08.2004 в 07:04)
| | Собственно говоря у меня сделано просто и не надо на два файла разбивать и исправить уже существующий код достаточно как мне кажется легко
<?php
$sql="insert into 'gbook' values (NULL,'".to_sql($name)."','".to_sql($email)."','".to_sql($theme)."','".to_sql($msg)."',$tim,'".to_sql($date)."',0,$parent_id,$num_msg,$first)";
$res=mysql_query($sql);
if(isset($res))
{
?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Refresh" content="0; URL=index.php">
</head><body></body></html>
<?php
echo "Сообщение успешно добавлено";
exit;
}
else "Хер тебе а не сообщение";
?>
|
вот вроде и все потом хоть заобновляйся ничего повторно в базу не пишется. Вот. | |
|
|
|
|
|
|
|
для: cheops
(11.08.2004 в 14:49)
| | У меня скрипт разбит на 2 файла. Первый выводит форму для внесения различной инф в базу, всякие там <input>,<textarea>, и.т.д. Затем нажимается кнопка ок, и инф передается во второй скрипт, где уже вносится в базу.Т.е. кнопка добавить по существу находится в другом скрипте.
Можно добавить внизу кнопку обновить, но при этом мне все равно надо чтоб при нажити ctrl+r или "обновить" в IE у меня не возникало ошибок, вот. | |
|
|
|
|
|
|
|
для: ndach
(11.08.2004 в 14:27)
| | Ну скорее так: когда происходит первое обращение к форме, элемент суперглобального массива $_POST['act'] не установлен и переменная $act получает значение "add" - добавлять данные. При нажатии на кнопку данные отправляются этому же скрипту, так как значение $_POST['act'] теперь равно "add" скрипт заходит в первый if и добавляет данные. При этом перменная $act получает значение "upd" - и если теперь нажать кнопку "Обновить" - скрипт пергрузит форму, так зайдёт во второй if. После этого нажатие кнопки приведёт опять к добавлению... Кстати, а почему вы не хотите использовать две кнопки - одна для добавления, другая для обновления. | |
|
|
|
|
|
|
|
для: cheops
(11.08.2004 в 13:54)
| | Короче говоря, если я посылаю переменные первый раз, то у меня переменной нету, а если обновляю то она создается | |
|
|
|
|
|
|
|
для: ndach
(11.08.2004 в 13:38)
| | Да... чего-то я задумался :))) Поправил... Из формы мы отправляем переменную act, которая может принимать два значения: add - для добавления сообщения и upd - для обновления страницы. | |
|
|
|
|
|
|
|
для: cheops
(11.08.2004 в 13:13)
| | Чего то я никак последний скрипт не могу разобрать. Я так понял переменная add посылается откуда то из др скрипта. А зачем нужна act, если здесь она не считывается?? | |
|
|
|
|
|
|
|
для: ndach
(11.08.2004 в 12:58)
| | Если захотите оставить всё в одном файле, можно использовать несколько обработчиков
<?php
if(!isset($_POST['add'])) $act = "add";
else $act = "upd";
?>
<form method=post>
<input type=text name=pos >
<input type=hidden name=act value=<?php echo $act; ?>>
<input type=submit value=Обновить>
</form>
<?php
// Обработчик формы на добавление
if($_POST['act'] == 'add')
{
// добавляем в базу сообщение
}
if($_POST['act'] == 'upd')
{
// Просто перегружаем форму
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>";
}
?>
|
Играясь со скрытыми полями - всегда можно добится от формы любого поведения, без кода, конечно сложно что-то более конструктивное написать....
Но у такого подхода есть один недостаток - код получается здорово замороченный и трудночитаемый - разделение формы и обработчика в этом плане сильно облегчает жизнь... | |
|
|
|
|