// формируем список управляющих кнопок // проверяем, пустая ли таблица if( isempty_data( $sql ) ) {
// если таблица пустая, то в кнопках "Удалить" и "Редактировать" // нет нужды addVar( "cntrow", 0 ); // добавляем на форму управляющие кнопки out_list_buttons("doaction", 0);
} else {
addVar( "cntrow", 1 ); // добавляем на форму управляющие кнопки out_list_buttons("doaction", 1); }
// добавляем на форму управляющие кнопки function out_list_buttons( $name, // имя переменной, куда будет сохранено заданное значение, // в зависимости от выбранной кнопки $cntrow // если параметр <= 0, то кнопки "Изменить строку" и // "Удалить строку" не добавляем ) {
// выводим на форму содержимое таблицы в виде списка function out_data_list( $name, // имя переменной, в которую будет присваиваться значение ключа // текущегй строки таблицы $keysavename, // имя переменной на клиентской странице // в которой будет хранится название ключевого поля $sql, // текст SQL-запроса $cntrow // максимальное число строк в результате запроса ) {
// проходим по всем строкам foreach( $ar[1] as $res ) { echo "<tr>\n";
// создаем колонку, в которой будет находится индикатор // текущей строки echo '<td><input type=radio name="'.$name.'" value = '.$res[0];
if( $i == 0 ) { // по умолчанию индикатор на первой строке echo " checked "; $i++; } echo '></td>'; // формируем значения колонок для строки foreach( $res as $var ) { echo "<td>" . $var ."</td>\n"; } } echo "</tr>\n"; echo '</table>'; // добавляем на клиентскую страницу переменную с именем ключевого // поля addVar( $keysavename, $ar[0][0][fname] );
}
?> </body> </html>
Имя таблицы получаем из элемента «table» в массиве $_REQUEST. При помощи функции isempty_data определяется, какие кнопки нужны для работы с данными. В случае непустой таблицы это кнопки: «Добавить строку», «Изменить строку», «Удалить строку», «Выбрать таблицу повторно». Для пустой таблицы присутствуют только кнопки «Добавить строку» и «Выбрать таблицу повторно».
Код для кнопок создается вызовом функции button_with_act, в этой функции указывается, какой переменной должно быть присвоено значение при нажатии данной кнопки, а также само значение. Это значение можно будет прочитать из скрипта - обработчика формы (скрипт edit_form.php). В нашем случае по этому значению (переменная «doaction») определяется, какие действия следует предпринять в скрипте – обработчике.
Собственно список строк таблицы выводится функцией out_data_list. Первая колонка содержит индикатор (радио-кнопка), позволяющий выбрать текущую строку. С каждым полем индикатора связано значение ключа соответствующей строки таблицы. Это значение помещается в переменную «keyvalue» и доступно в скрипте – обработчике формы. Помимо переменной «keyvalue» задается значение переменной «keysavename», которая содержит имя ключевого поля таблицы.