Создание основной страницы
Для обновления и удаления данных необходимы основная и детальная страницы, поскольку для удаления или обновления данных пользователи должны выбрать страну. В этом упражнении будет создана несложная основная страница, на которой будет отображаться таблица, в каждой строке которой присутствует название страны, ссылка для изменения информации о ней и ссылка для удаления страны. Как и прежде, каждая из этих ссылок содержит параметр URL-адреса, указывающий на то, какая именно страна была выбрана.
- Откройте документ admin_cp_master.asp и переключитесь в режим Code (Код).
Как обычно, перед тем, как вводить данные на странице, будет создан набор записей. Чтобы написать сценарий, формирующий набор записей, необходимо использовать режим Code (Код).
- Между кодом серверной модели поведения Restrict Access (Ограниченный доступ) и началом документа (непосредственно перед тегом <!DOCTYPE>), введите код, необходимый для создания набора записей ("rs_countries"), который извлекает из каждой записи в таблице tbl_country имя и идентификатор страны.
Для ASP:
<% Dim dbConn Dim rs_countries set dbConn = Server.CreateObject("adodb.connection") dbConn.open("newland") Set rs_countries = dbConn.Execute("SELECT countryID, countryName FROM tbl_country ORDER BY countryName ASC") %>
Для ColdFusion:
<cfquery name="rs_countries" datasource="newland"> SELECT countryID, countryName FROM tbl_country ORDER BY countryName ASC </cfquery>
Для PHP:
<?php // Set up connection to MySQL $host = "localhost"; $user = "[введите имя пользователя]"; $pwd = "[введите пароль]"; $dbConn = mysql_connect($host,$user,$pwd); // Connect to newland_tours database $database = "newland_tours"; mysql_select_db($database); $query_rs_countries = "SELECT countryID, countryName FROM tbl_country ORDER BY countryName ASC"; $rs_countries = mysql_query($query_rs_countries); $row_rs_countries = mysql_fetch_assoc($rs_countries); ?>
увеличить изображение
За исключением деталей в операторе SQL, приведенный код абсолютно идентичен коду, использованному ранее, так что здесь все должно быть понятно. Смысл запроса понять тоже несложно: он извлекает из базы данные с названиями стран и их идентификаторами и сортирует их по алфавиту (по названия).
- Только пользователям ASP и ColdFusion. Добавьте в конец документа код, предназначенный для закрытия и уничтожения набора записей.
Для ASP:
<% rs_countries.Close() Set rs_countries = Nothing %>
Для PHP:
<?php mysql_free_result($rs_countries); ?>
Этот код, как и раньше, очищает память сервера от лишних данных.
- В режиме Design (Дизайн) введите на странице две строки текста:
Select a country to modify or delete. Выберите страну, которую нужно изменить или удалить.
Caution: Deleting is instant and permanent. Внимание! Удаление производится сразу же и отменить его невозможно.
Как и прежде, четкие рекомендации несомненно повышают эффективность использования приложений.
увеличить изображение
- В режиме Code (Код) под созданным на предыдущем шаге абзацем поместите код новой таблицы, состоящей из одной строки и трех столб-цов.
<table width="98%" border="1" cellpadding="3" cellspacing="0"> <tr> <td>XX</td> <td>XX</td> <td>XX</td> </tr> </table>
Этот код формирует каркас таблицы. По завершении страницы данные в таблице будут генерироваться автоматически, и каждая запись будет помещена в отдельную строку. Поскольку точное количество строк определить невозможно, будет создан цикл, создающий отдельную строку для каждой записи.
- Введите код для создания цикла, внутри которого заключен тег <tr>. Участки кода должны располагаться перед открывающим тегом <tr> и после закрывающего тега </tr>.
Для ASP:
<% Do Until rs_countries.EOF %> <tr> <td>XX</td> <td>XX</td> <td>XX</td> </tr> <% rs_countries.MoveNext() Loop %>
Для ColdFusion:
<cfoutput query="rs_countries"> <tr> <td>XX</td> <td>XX</td> <td>XX</td> </tr> </cfoutput>
Для PHP:
<?php do { ?> <tr> <td>XX</td> <td>XX</td> <td>XX</td> </tr> <?php } while ($row_rs_countries = mysql_fetch_assoc($rs_countries)); ?>
На этом шаге без использования модели поведения Dreamweaver создается повторяющаяся область. Несмотря на незначительные различия в коде все три сценария выполняются по единой логике. В каждом сценарии перед повторяющимся участком и после него (область, ограниченная тегами <tr>) добавляется код. В каждом определяется набор записей и создается цикл, который прерывается только тогда, когда заканчиваются записи в наборе. В ASP для проверки этого условия применяется функция EOF, в ColdFusion цикл создается автоматически, когда внутри тега <cfoutput> определяется запрос (параметр query), а в PHP применяется функция mysql_fetch_assoc().
На следующем шаге в ячейки таблицы будет добавлено содержимое, состоящее из смешанного кода HTML и ASP, ColdFusion или PHP.
- Между тегами <td>, поместите приведенный ниже HTML-код.
<td>Country Name</td> <td><a href="admin_cp_update.php?countryID=CountryID">Modify this country’s profile</a></td> <td><a href="admin_cp_delete_processor.php?countryID=CountryID">Delete </a></td>
Поскольку код представляет собой статический HTML, он подходит как для ASP, так и для ColdFusion и PHP (за исключением расширений файлов в атрибуте href — для ColdFusion и PHP соответственно .cfm и .php вместо .asp). Вместо динамического кода применяются заменители, что дает возможность проверить правильность написания HTML.
увеличить изображение
- Замените статический код во всех трех ячейках динамическими данными, как показано ниже.
Для ASP:
<td><%=rs_countries("countryName")%></td> <td><a href="admin_cp_update.asp?countryID=<%=rs_countries("countryID")%>"> Modify this country’s profile</a></td> <td><a href="admin_cp_delete_processor.asp?countryID=< %=rs_countries("countryID")%>">Delete</a></td>
Для ColdFusion:
<td>#countryName#</td> <td><a href="admin_cp_update.cfm?countryID=#countryID#">Modify this country’s profile</a></td> <td><a href="admin_cp_delete_processor.cfm?countryID=#countryID#">Delete</a></td>
Для PHP:
<td><?php echo $row_rs_countries['countryName']; ?></td> <td><a href="admin_cp_update.php?countryID=<?php echo $row_rs_countries['countryID']; ?>">Modify this country’s profile</a></td> <td><a href="admin_cp_delete_processor.php?countryID=<?php echo $row_rs_countries['countryID']; ?>">Delete</a></td>
В книге встречалось немало кода ASP, ColdFusion и PHP, выводящего данные на страницу, так что чтение приведенных сценариев не должно вызывать затруднений, особенно если вспомнить, что в ASP код <%= означает <%Response.Write().
увеличить изображение
- Сохраните файл, загрузите его на сервер и протестируйте в браузере.
На страницу выводится таблица, количество строк в которой равно количеству записей в наборе. Если навести указатель мыши на одну из ссылок, появится не только URL-адрес, но и прикрепленный к нему параметр countryID, соответствующий выбранной стране.
увеличить изображение
Закройте файл admin_cp_master.asp.
Содержание Назад Вперед