Обратная связь по ICQ
При нажатии на ссылку 385771293 вызывается xajax-функция Form_ICQ_Admin, расположенная в файле prgcontacts/form_icq_admin.php (листинг 4.45). Функция делает видимым окно (div id=windowdop) и создает в нем форму отправки сообщения на ICQ администратора (рис. 4.37).
Рис. 4.37. Форма обратной связи — отправка сообщения на ICQ администратора
Лис тинг 4.45
<?php
// Форма отправки icq админу с сайта
function Form_ICQ_Admin()
{
$objResponse = new xajaxResponse();
// подключение файла настроек
require_once("my.php");
// подключение базы данных
require_once("mybaza.php");
// сделать windowdor невидимым
$objResponse->assign("windowdop","style.display","none");
// создать форму
$text1.="<a href=’javascript:void(null);’ onclick=’ document.getElementById(\"windowdop\").style.display=
\"none\";return false;’>
<img src=’img/delete.png’ align=right></a>";
$text1.="<center><b>Отправить вопрос<br>icq</b><br>";
$text1.="<div id=VhodError></div>";
$text1.="<form id=’FormICQAdmin’ action=’javascript:void(null);’ onsubmit=’xajax.$(\"ButtonFormICQAdmin\").disabled=true; xajax.$(\"ButtonFormICQAdmin\").value=\"Подождите…\"; xajax_Go_ICQ_Admin(xajax.getFormValues(\"FormICQAdmin\")); return false; ‘>";
$text1.="<font color=black> Кому : Администратору сайта </font><input
type=’hidden’ name=’toemail’ value=’".ICQADMIN."’><br>";
$text1.="<font color=black>От(Ваш ICQ) : </font><input type=’text’
name=’fromicq’ value=”><br>";
$text1.="<font color=black>Сообщение:<br></font><textarea
name=’fromicqbody’ cols=40 rows=7></textarea><br>";
$text1.="<input id=’ButtonFormICQAdmin’ type=’submit’
value=’Отправить>>’>";
$text1.="</center></form>";
// сделать windowdor видимым
$objResponse->script("document.getElementById(‘windowdop’).style.display= ‘block’");
// выдать форму
$objResponse->assign("windowdop","innerHTML",$text1);
// windowdop в зону видимости
$objResponse->script("document.getElementById(‘windowdop’)
.scrollIntoView();"); return $objResponse;
}
// Отправка icq на номер администратора
function Go_ICQ_Admin($Id)
{
// подключение файла настроек
require_once("my.php");
// подключение базы данных
require_once("mybaza.php");
$objResponse = new xajaxResponse();
// проверим – сообщение непустое
if(trim($Id[fromicqbody])=="")
{
$objResponse->assign("ButtonFormICQAdmin","disabled",false);
$objResponse->assign("ButtonFormICQAdmin","value","Отправить>>");
$objResponse->alert("Вопрос не задан !!!");
return $objResponse;
}
// подключение библиотеки WebIcqLite include(‘WebIcqLite.class.php’);
$icq = new WebIcqLite();
// соединение с сервером icq if($icq->connect(ICQ, ICQPASS))
{
// отправка сообщения
if(!$icq->send_message(ICQADMIN, $Id[fromicqbody]))
{
// сделать активной кнопку
$objResponse->assign("ButtonFormICQAdmin","disabled",false);
$objResponse->assign("ButtonFormICQAdmin","value","Отправить>>");
$objResponse->alert("Ошибка отправления сообщения icq !".
$icq->error);
} else
{
// сделать windowdor невидимым
$objResponse->assign("windowdop","style.display","none");
$objResponse->alert("Сообщение отправлено по icq!");
}
$icq->disconnect();
} else
{
$objResponse->assign("ButtonFormICQAdmin","disabled",false);
$objResponse->assign("ButtonFormICQAdmin","value","Отправить>>");
$objResponse->alert("Ошибка подключения к серверу icq !".$icq->error);
}
return $objResponse;
}
?>
При нажатии на кнопку Отправить вызывается xajax-функция Go_ICQ_Admin,
расположенная в файле prgcontacts/form_icq_admin.php (листинг 4.45), которая про-
веряет правильность заполнения полей и отправляет письмо на ICQ администратора. Для отправки используется библиотека WebIcqLite (файл WebIcqLite.class.php). При успешной отправке выдается сообщение (рис. 4.38) и окно исчезает (установка значения none для свойства display элемента с id=windowdop).
Рис. 4.38. Отправка сообщения на ICQ администратора из формы обратной связи
Источник: Петин В. А., Сайт на AJAX под ключ. Готовое решение для интернет-магазина. — СПб.: БХВ-Петербург, 2011. — 432 с.: ил. + CD-ROM — (Профессиональное программирование)