русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Форма редактирования


Дата добавления: 2015-07-09; просмотров: 695; Нарушение авторских прав


Работа с формой завершается нажатием одной из управляющих кнопок «Добавить строку», «Изменить строку», «Удалить строку», «Выбрать таблицу повторно». По нажатию кнопки управление передается скрипту edit_form.php. Например, если нажата кнопка «Добавить строку», результатом работы скрипта edit_form.php будет следующая страница:

 

Рис. 4. Страница добавления записи


Скрипт, формирующий данную страницу, выглядит следующим образом:

 

<?php
#edit_form.php

include( "check.inc" );


$_SESSION["save"] = false;

// переменные, переданные из формы просмотра
$table = $_REQUEST["table"]; // имя таблицы
$keyname = $_REQUEST["keyname"]; // имя ключевого поля
$keyvalue = $_REQUEST["keyvalue"]; // значение ключевого поля
$doaction = $_REQUEST["doaction"]; // предполагаемое действие
// 1 - добавить строку
// 2 - изменить строку
// 3 - удалить строку
// 4 - перейти к форме выбора таблиц
$cntrow = $_REQUEST["cntrow"]; // сколько строк в таблице
// было. Нужно, чтобы отследить
// тот факт, что таблица пуста
if( $cntrow <= 0 ) {
$doaction = "1";
}

// проверяем, нужно ли перейти к форме выбора таблиц
if ( $doaction == "4" ) {
// создаем форму выбора таблиц
include( "ch_table.inc" );
exit;
}

include( "var.inc" );

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" dir="ltr">
<head>
<title>Редактирование</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
</head>
<body>

<?php

echo '<form name="edit_data" action="save_data.php" method="post">';



// добавляем полученные из запроса переменные, дабы можно
// их было также передать в качестве запроса к другой форме
addVar( "table", $table );
addVar( "keyname", $keyname );
addVar( "keyvalue", $keyvalue );
addVar( "doaction", $doaction );

// в эту переменную будет сохранено действие (Сохранить, Отмена и т.п.)
// которое требуется совершить с формой после завершение ввода
addVar( "result", "-1" );

// проверяем, нужно ли подтвердить удаление строки
if( $doaction == "3" ) {

// создаем форму с запросом на удаление

echo "Удалить выбранную строку?<br>";
echo button_with_act( "yes", "Yes", "1", "result" );
echo button_with_act( "no", "No", "2", "result" );
exit;

} else {
// добавляем управляющие кнопки "Сохранить" и "Отмена"
echo button_with_act( "save", "Сохранить", "1", "result" );
echo button_with_act( "cancel", "Отмена", "2", "result" );
}

// создаем поля ввода
edit_data( $table, $keyname, $keyvalue, $doaction, $cntrow );

echo '</form>';

// функция для создания полей ввода
function edit_data(
$table, // имя таблицы
$keyname, // имя ключевого поля
$keyvalue, // значение ключевого поля3
$doaction, // предполагаемое действие
// 1 - добавить строку
// 2 - изменить строку
$cntrow // 5 - сколько строк в таблице
// было. Нужно, что бы отследить
// тот факт, что таблица пуста
) {
try {

if( $cntrow > 0 ) {
// в таблице есть строки, выбираем из таблицы
// единственную строку по значению ключа

$ar = get_result( "select * from ".$table.
" where ".$keyname."=".$keyvalue.";", 1 );

} else {
// при отсутствии строк в таблице всегда будем только
// добавлять данные
$doaction = "1";

// выполняем запрос к таблице с целью извлечь данные о полях
$ar = get_result( "select * from ".$table.
" where ".$keyname."=-1;", 1 );

}
} catch (Exception $e) {
// обрабатываем ошибку
// выведем сообщение об ошибке
echo $e->getMessage();
// завершаем генерацию страницы
exit;
}

$i= 0;
// данные выбранной строки БД
$row = $ar[1][0];

echo '<table border="0" >';

// Для каждого поля
foreach( $ar[0] as $fld ) {
echo "<tr>";

// Выводим имя поля
echo "<td>$fld[fname]</td>";

// Получаем значение поля
if( $doaction == "2" ) {
$val = $row[$i];
} else {
// при добавлении значение поля пустое
$val = "";
}

// выводим элемент ввода на страницу
// внимание! Дабы при последующей
// обработке формы переменная со значением поля была различима
// в начале имени переменной указывается префикс fld::
echo '<td><input type = "text" name = "fld::'.$fld[fname].'" '.
'value="'.$val.'"></td>';

echo "</tr>";
$i++;
}
echo '</table>';
}

?>

</body>
</html>

 

В зависимости от значения переменной «doaction» скрипт либо создает форму для подтверждения удаления, либо формирует полноценную форму ввода полей. Эта форма содержит кнопки «Сохранить» и «Отмена». Нажатие этих кнопок приводит к переходу к скрипту – обработчику save_data.php. В переменную «result» помещается «1» в случае выбора кнопки «Сохранить» и «2» в случае выбора кнопки «Отмена». Поля ввода создаются на форме при помощи вызова функции edit_data. Эта функция на основе переданного имени таблицы, имени ключевого поля и значения ключевого поля формирует SQL-запрос для извлечения данных конкретной строки таблицы (в случае добавления строки SQL-запрос используется только для получения информации о полях таблицы).

После извлечения данных формируется список полей для ввода. Имена полей для ввода имеют вид «fld::имя поля БД». Префикс «fld::» используется для того, чтобы распознать переменные, имеющие отношение к полям БД в скрипте – обработчике save_data.php.

 



<== предыдущая лекция | следующая лекция ==>
Выбор строк из таблицы | Сохранение информации


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.046 сек.