<Прайс_лист_фруктов>
<Фрукт>Яблоки</Фрукт>
<Цена>$1</Цена>
<Фрукт>Мандарины</Фрукт>
<Цена>$2</Цена>
</Прайс_лист_фруктов>
На стороне клиента XML способен предоставить разработчикам Web огромные возможности. Поддержку XML содержат браузеры Microsoft Internet Explorer версии 5.0 и выше, а также Netscape Navigator версии 6.0 и выше. Однако даже если во все браузеры будет включена полная поддержка XML, все же останутся некоторые проблемы:
§ изучить XML труднее, чем HTML;
§ пока еще недостаточно инструментов для работы с XML в визуальной среде.
Начинать изучение XML следует с применения уже полученных знаний о HTML. XML, как и HTML, является языком тегов и атрибутов. В XML, как и в HTML, содержание элемента окружено парой тегов - открывающим и закрывающим. Однако, в XML имена тегов рекомендуется делать более информативными:
<h1>Текст заголовка</h1> <!-- HTML -->
<заголовок>Текст заголовка</заголовок> <!-- XML -->
В отличие от HTML в XML:
имеется чувствительность к регистру;
все значения атрибутов должны быть заключены в кавычки:
|
|
<IMG height=20 width=20 src="i.gif"> <!-- HTML -->
<image height="20" width="20" source="i.gif"/> <!-- XML -->
каждый тег пустого элемента, не имеющий закрывающего тега, должен иметь косую черту в конце.
Создание Ajax-приложения без использования XML
Пример: Форма запроса регистрационной информации.
Оригинал статьи здесь
Для начала создадим форму ввода регистрационной информации и подключим скрипт из внешнего файла, содержащий необходимые функции (XMLHttpRequest и др.)
<script src="ajax_framework.js" language="javascript"></script>
<!-- Место для AJAX ответа -->
<div id="login_response"></div>
<!-- При отправке формы вызывается функция login() из ajax_framework.js -->
<form action="javascript:login()" method="post">
<input name="emailLogin" type="text" id="emailLogin" value=""/>
<input name="pswLogin" type="password" id="pswLogin" value=""/>
<input type="submit" name="Submit" value="Login"/>
</form>
Обработчик ajax_framework.js:
/* ------------------------ */
/* XMLHTTPRequest Enable */
/* ------------------------ */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
/* ----------------------- */
/* LOGIN */
/* ----------------------- */
/* Переменная nocache содержит случайное число, добавляемое в запрос
для предотвращения кеширования браузером запроса */
var nocache = 0;
function login() {
// Отображаем соощение в области ID ajax_response
document.getElementById('login_response').innerHTML = "Loading..."
// Проверяем, что все поля не пустые. Используем encodeURI() для кодирования недопустимых символов в запросе.
var email = encodeURI(document.getElementById('emailLogin').value);
var psw = encodeURI(document.getElementById('pswLogin').value);
|
|
// Получаем случайное число
nocache = Math.random();
// Pass the login variables like URL variable
http.open('get', 'login.php?email='+email+'&psw='+psw+'&nocache = '+nocache);
http.onreadystatechange = loginReply;
http.send(null);
}
function loginReply() {
if(http.readyState == 4){
var response = http.responseText;
if(response == 0){
// if login fails
document.getElementById('login_response').innerHTML = 'Login failed! Verify user and password';
// else if login is ok show a message: "Welcome + the user name".
} else {
document.getElementById('login_response').innerHTML = 'Welcome'+response;
}
}
}
На предыдущем шаге функция login() получила и отправила в login.php две переменных (email and psw) для проверки наличия пользователя в базе данных.
Проверку осуществляет login.php:
<!-- Include Database connections info. -->
<?php include('config.php');
// Verify if user exists for login
if(isset($_GET['email']) && isset($_GET['psw'])){
$email = $_GET['email'];
$psw = $_GET['psw'];
$getUser_sql = 'SELECT * FROM USER WHERE email="'. $email. '" AND psw = "'. $psw. '"';
$getUser = mysql_query($getUser_sql);
$getUser_result = mysql_fetch_assoc($getUser);
$getUser_RecordCount = mysql_num_rows($getUser);
if($getUser_RecordCount < 1){ echo '0';}
else { echo $getUser_result['nick'];}
}
?>