Основы работы в Dreamweaver


Создание основной страницы


Для обновления и удаления данных необходимы основная и детальная страницы, поскольку для удаления или обновления данных пользователи должны выбрать страну. В этом упражнении будет создана несложная основная страница, на которой будет отображаться таблица, в каждой строке которой присутствует название страны, ссылка для изменения информации о ней и ссылка для удаления страны. Как и прежде, каждая из этих ссылок содержит параметр URL-адреса, указывающий на то, какая именно страна была выбрана.

  1. Откройте документ admin_cp_master.asp и переключитесь в режим Code (Код).

    Как обычно, перед тем, как вводить данные на странице, будет создан набор записей. Чтобы написать сценарий, формирующий набор записей, необходимо использовать режим Code (Код).

  2. Между кодом серверной модели поведения 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, приведенный код абсолютно идентичен коду, использованному ранее, так что здесь все должно быть понятно. Смысл запроса понять тоже несложно: он извлекает из базы данные с названиями стран и их идентификаторами и сортирует их по алфавиту (по названия).

  3. Только пользователям ASP и ColdFusion. Добавьте в конец документа код, предназначенный для закрытия и уничтожения набора записей.

    Для ASP:

    <% rs_countries.Close() Set rs_countries = Nothing %>

    Для PHP:

    <?php mysql_free_result($rs_countries); ?>

    Этот код, как и раньше, очищает память сервера от лишних данных.



  4. В режиме Design (Дизайн) введите на странице две строки текста:



    Select a country to modify or delete. Выберите страну, которую нужно изменить или удалить.

    Caution: Deleting is instant and permanent. Внимание! Удаление производится сразу же и отменить его невозможно.

    Как и прежде, четкие рекомендации несомненно повышают эффективность использования приложений.


    увеличить изображение

  5. В режиме Code (Код) под созданным на предыдущем шаге абзацем поместите код новой таблицы, состоящей из одной строки и трех столб-цов.

    <table width="98%" border="1" cellpadding="3" cellspacing="0"> <tr> <td>XX</td> <td>XX</td> <td>XX</td> </tr> </table>

    Этот код формирует каркас таблицы. По завершении страницы данные в таблице будут генерироваться автоматически, и каждая запись будет помещена в отдельную строку. Поскольку точное количество строк определить невозможно, будет создан цикл, создающий отдельную строку для каждой записи.

  6. Введите код для создания цикла, внутри которого заключен тег <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.



  7. Между тегами <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.


    увеличить изображение

  8. Замените статический код во всех трех ячейках динамическими данными, как показано ниже.

    Для 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().


    увеличить изображение

  9. Сохраните файл, загрузите его на сервер и протестируйте в браузере.

    На страницу выводится таблица, количество строк в которой равно количеству записей в наборе. Если навести указатель мыши на одну из ссылок, появится не только URL-адрес, но и прикрепленный к нему параметр countryID, соответствующий выбранной стране.


    увеличить изображение

    Закройте файл admin_cp_master.asp.




Содержание  Назад  Вперед