русс | укр

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

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

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

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


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

Страница для выбора таблицы


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


После выполнения запроса вся последующая работа с результатами осуществляется уже со структурами в памяти (массивами). Функции get_result, exec_sql, isempty_data содержат код по обработке ошибок, в случае возникновения ошибки выполняется генерация исключения, которое должно быть обработано в вызывающем коде. Для генерации текста ошибки используется дополнительная функция gen_error_message.

Вернемся к файлу after_login.php. После установления соединения с БД выполняется генерация страницы для выбора таблицы при помощи скрипта ch_table.inc. Результирующая страница выглядит следующим образом:

Рис. 2. Страница для выбора таблицы

 

Текст ch_table.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
#ch_table.inc

// подключаем файл с доп. функциями
include( "var.inc" );

echo '<form name = "form_chtab" action="view_form.php" method="post">';
echo 'Выберите таблицу для просмотра: ';

// создаем список таблиц
$s = create_list_fromdb( "tables", "select * from TABLES;", 1000 );
// выводим список на страницу
echo $s;

// добавляем переменную с именем таблицы
// которую затем вернем на сервер
addVar( "table", "-1" );

// создаем кнопку, котороя присвоит значение перменной table
// и вызовет view_form.php
echo
'<button type="submit" '.
' onClick="'.getVar_Client('table').' = tablesSelect( document.forms[0] )">'.
'Ok</button>';



echo '</form>';

// создать код для формирования списка с заданным именем из массива
function create_view_list(
$name, // имя списка
$arr // массив
) {

$s = '<select name="'.$name.'">';
foreach( $arr as $v ) {
$s = $s.'<option value="'.$v.'">'.$v.'</option>';
}
$s = $s.'</select><br>';

// обработчик на javascript, возвращающий значение
// текущего выбранного элемента
$s = $s.
'<script type="text/javascript">'.
'function '.$name.'Select(f) {'.
' n = f.'.$name.'.selectedIndex; '.
' return f.'.$name.'.options[n].value; '.
'}'.
'</script><br>';
return $s;
}

// создать код, формирующий список с заданным именем
// на основе запроса к БД
function create_list_fromdb(
$name, // имя списка
$sql, // текст SQL-запроса, в спискебудет отображаться
// первое поле в результате
$cntrow // максимальное количество элементов в списке
) {

try {
// выполняем запрос
$ar = get_result( $sql, $cntrow );
} catch (Exception $e) {
// обрабатываем ошибку
// выведем сообщение об ошибке
echo $e->getMessage();
// завершаем генерацию страницы
exit;
}

// формируем массив значений для списка
foreach( $ar[1] as $val ) {
$res[] = $val[0];
}

// создаем код для формирования списка
return create_view_list( $name, $res );
}

?>
</body>
</html>

 

Регистрация переменной "table"

Список таблиц создается функцией create_list_fromdb на основе запроса:

select * from TABLES;

TABLES – это таблица словаря данных HyTech, в котором содержится информация о таблицах. В результате запроса создается массив с именами таблиц. Этот массив передается в функцию create_view_list, которая формирует корректные теги HTML для формирования списка. Помимо тегов HTML создается еще функция на JavaScript, которая возвращает значение текущего элемента списка. Эта функция используется при обработке события нажатия кнопки «Ok» для присвоения значения текущего элемента списка переменной «table». Значение переменной «table» будет передано в скрипт view_form.php (этот скрипт указан в заголовке формы как скрипт обработки). Далее переменная «table» будет использована в качестве имени таблицы при выборке данных.

Переменная «table» регистрируется специальной функцией addVar. Эта функция создает на форме «скрытый» элемент ввода, тем не менее, значение этого элемента будет передано в запросе POST на сервер в скрипт обработки. Код функции addVar содержится в файле var.inc.
Вот этот файл:

 

<?php
#var.inc

// добавить на страницу скрытый элемент ввода (переменную)
// этому элементу можно присвоить значение, которое будет
// передано в скрипт - обработчик формы
function addVar(
$vname, // имя переменной
$value // значение по умолчанию
) {

echo '<input type = hidden value = "'.
$value.
'" name = "'.
$vname.'" >';

}

// получить кусок кода для клиентской страницы,
// извлекающий значение переменной,
// заданной элементом ввода
function getVar_Client(
$vname // имя переменной
) {

return "document.forms[0].".$vname.".value";

}

// получить кусок кода для клиентской страницы,
// создающий кнопку, при нажатии которой будет
// присвоено значение заданной переменной
// и управление будет передано скрипту-обработчику
// формы (на сервер)
function button_with_act(
$name, // имя кнопки
$text, // текст на кнопке
$val, // значение, присваиваемое переменной
$actname // имя переменной
) {
return '<button name="'.$name.'" type="submit" '.
' onclick="document.forms[0].'.$actname.'.value = '.$val.
'">'.$text.'</button>';
}

?>

 

Данные функции активно используются в других скриптах.

 



<== предыдущая лекция | следующая лекция ==>
Функции для работы с БД | Выбор строк из таблицы


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


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

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

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


 


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

 
 

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

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