howto4all.net

В помощь начинающему WEB-мастеру

Создаем 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')

Далее для разработки и тестирования Вам нужно:

  1. Создать PHP-скрипт с запросами на обработку данных Oracle database.
  2. Протестировать PHP-скрипт и убедиться, что он работает.
  3. Написать код JavaScript для связки с этим PHP-скриптом
  4. Создать HTML код который будет содержать написанный этот JavaScript.
  5. Протестировать нужный процесс.

Итак пройдемся по пунктам ….
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 – тестируем на работоспособность :) .

Ну вот пожалуй и все :) .

Comments

Leave a Reply





JSantispam

В Вашем браузере отключена поддержка JavaScript! Для корректной работы Вам необходимо включить поддержку JavaScript и обновить данную страницу.
  • Вход

  • Управление подпиской

  • Колличество подписанных

    7
  •  

    Декабрь 2009
    Пн Вт Ср Чт Пт Сб Вс
    « Окт    
     123456
    78910111213
    14151617181920
    21222324252627
    28293031