Создаем Ajax процессы, используя PHP и Oracle
Posted on | декабря 14, 2009 | No Comments
В последнее время , Ajax (Asynchronous JavaScript and XML – читается “Аякс”), очень популярен при разработке веб-сайтов. Например можно обратить анимание на такой гигант (Карты, Gmail, и так далее) как Google. Напомню, что технология Ajax позволяет выполнять запросы на сервере без отсылки данных от пользователя через форму или без перехода по ссылке.
В этом примере, я хочу привести необходимый код для использования Ajax. Читая это руководство, вы приобретете не только некоторый код в качестве образца, но и, более широкое понимание технологии Ajax.
Для начала создадим в базе простенькую талицу пользователей в которой будем хранить емейл-адреса пользователей
CREATE TABLE users ( email VARCHAR2(60) )
и добавим туда немного данных
INSERT INTO users (email) VALUES ('t@mail.com')
INSERT INTO users (email) VALUES ('me@mail.ru')
INSERT INTO users (email) VALUES ('fake@bergsoftplus.com')
Далее для разработки и тестирования Вам нужно:
- Создать PHP-скрипт с запросами на обработку данных Oracle database.
- Протестировать PHP-скрипт и убедиться, что он работает.
- Написать код JavaScript для связки с этим PHP-скриптом
- Создать HTML код который будет содержать написанный этот JavaScript.
- Протестировать нужный процесс.
Итак пройдемся по пунктам ….
1. Создаем PHP-скрипт с запросом на обработку данных в Oracle database.
<?php
// Не пишите в этом скрипте HTML!
// Проверяем или приняты данные $_GET['email']:
if (isset($_GET['email'])) {
// Соединяемся с базой данных. Пример для PHP 5.
$c = oci_pconnect (‘hr’, ‘hr’, ‘orcl’)
OR die(‘Unable to connect to the database.
Error: <pre>’ . print_r(oci_error(),1) . ‘</pre>’);
// Запрос.
$q = “SELECT COUNT(*) AS NUM_ROWS FROM users “.
” WHERE email=’{$_GET['email']}’”;
// Парсим запрос.
$s = oci_parse($c, $q);
// Инициализаци PHP переменной:
$rows = 0;
// Связываем результат с переменной $rows:
oci_define_by_name($s, “NUM_ROWS”, $rows);
// Выполняем запрос.
oci_execute($s);
// Определяем результат.
oci_fetch($s);
// Закрываем соединение.
oci_close($c);
// Возвращаем результат обработки.
if ($rows > 0) {
echo ‘Email адрес уже зарегистрирован!’;
} else {
echo ‘Email адрес доступен!’;
}
}
?>
2. Протестируем PHP-скрипт и убедимся, что он работает.
Прейдем по ссылке http://yoururl/ajax.php?email=X в Вашем Web-браузере.
Где Х – это email адрес, который в одном случае будет существовать в базе,
а при другом будет не существовать в базе …
В результате вы дожны будете получить разные сообщения после обработки.
3.Напишем код JavaScript для связки с этим PHP-скриптом.
Для этого нам нужно 3 функции.
Первая – Создаем обьект запроса :
function createRequestObject() {
var ro;
if (navigator.appName == "Microsoft Internet Explorer") {
ro = new ActiveXObject("Microsoft.XMLHTTP");
} else {
ro = new XMLHttpRequest();
}
return ro;
}
Вы можете использовать этот код за основу для любого Ajax-приложения без модификации.
Если в качестве браузера используется Microsoft Internet Explorer,
то ro переменная инициализирована как ActiveXObject с типом Microsoft.XMLHTTP.
для всех остальных браузеров ro используется прямой XMLHttpRequest.
Вторая – функция вызывающая PHP-скрипт:
function sendRequest(email) { http.open('get', 'ajax.php?email=' + encodeURIComponent(email)); http.onreadystatechange = handleResponse; http.send(null); }
Третья – функция, которая управляет этим запросом:
function handleResponse() {
if (http.readyState == 4) {
document.getElementById('email_label').innerHTML = http.responseText;
}
}
В итоге:
- Первая функция, createRequestObject(), делает объектную переменную, которая нужна.
- Вторая функция, sendRequest(), делает фактический запрос сценария PHP.
- Третья функция управляет этим запросом.
4. Создаем HTML-код, который будет содержать написанный код JavaScript.
<!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”>
<head>
<title>Регистрация</title>
<script type=”text/javascript” language=”javascript”>
// <![CDATA[// Нужно создать объект типа XMLHttpRequest.
function createRequestObject() {
var ro;
if (navigator.appName == "Microsoft Internet Explorer") {
ro = new ActiveXObject("Microsoft.XMLHTTP");
} else {
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();// функция, которая вызывает скрипт PHP:
function sendRequest(email) {
// Call the script.
// Use the GET method.
// Pass the email address in the URL.
http.open('get', 'ajax.php?email=' + encodeURIComponent(email));
http.onreadystatechange = handleResponse;
http.send(null);
}// функция-обработчик ответа от скрипта PHP.
function handleResponse() {
// If everything's okay:
if(http.readyState == 4){
// Assign the returned value to the document object.
document.getElementById('email_label').innerHTML = http.responseText;
}
}
// ]]>
</script>
</head>
<body>
<form action=”somepage.php” method=”post”>
Email : <input name=”email” type=”text” size=”30″ maxlength=”60″ onchange=”sendRequest(this.form.email.value)” />
<span id=”email_label”></span><br />
Имя: <input name=”first_name” type=”text” size=”20″ maxlength=”20″ /><br /></form>
</body>
</html>
5.Протестировать нужный процесс.
Теперь когда у нас есть HTML и JavaScript – тестируем на работоспособность
.
Ну вот пожалуй и все
.
Tags: Ajax > Ajax-приложения > Asynchronous JavaScript and XML > JavaScript > Oracle > Oracle Database > PHP > PHP-скрипт > XMLHttpRequest
Comments
Leave a Reply