Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XAJAX и PHP, неработает скрипт автозаполнения 
V
    Опции темы
helflip
  Дата 14.12.2006, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Привет всем, Уважаемые программисты!
Есть код
Код

<?php
ini_set('display_errors', 'off');

/* Включаем библиотеку  xajax */

require ('xajax.inc.php');

function getCities($sSearch)  {

  /* Массив с названием городов хранится в отдельном файле */

  require('gemeenten.php');

  $sOut = "";
  $nCount = 0;
  
  foreach($aCities as $sCity)  {
 
/* Цикл про списку сайтов. Если находим вхождение шаблона
то добавляем в список, который хранится в переменной $sOut */
 
    $sPattern = "/^(".strtolower($sSearch).")/"; 
    if(preg_match($sPattern, strtolower($sCity)))  {
    
/* Хранит количество значений в списке переменная $nCount */    
    
        $nCount++;
       
/* Небольшая помощь посредством javascript вы можете щелкнуть на элемент из списка 
подсказок и его значение заполнит форму ввода, при этом не нужно дописвывать
название города! */
        
        $sOut .= "<li><a href=\"#\" onclick=\"javascript:document.getElementById('search').value='".$sCity."';document.getElementById('citybox').style.display = 'none';\">".$sCity."</a></li>";
        $sLastHit = $sCity;
      }
  }
 
/* Если подсказок слишком много, то мы их не выводим. 
Потому выбрать из списка в сотню элементов гораздо затруднительнее чем
ввести слово полностью. В нашем случае предел - 31. */
  
  if($nCount > 31)  {
    $sOut = "";
    }
    
/* создаем экземпляо класса xajaxResponse */    
    
    $objResponse = new xajaxResponse();
    
  if(strlen($sOut) > 0)  {
  
/* Если $sOut содержит данные мы помещаем их внутри тега
    <ul> . Дополнительно мы отсылаем подсказку на  javascript для элемента с  id = 'citybox' 
    при помощи метода addScript() объекта  xajaxResponse */
 
    $sOut = "<ul>".$sOut."</ul>";
    $objResponse->addScript("document.getElementById('citybox').style.display = \"block\"");
  }
  else  {
  
/* Если нет результата мы не хотим вообще видеть элемент 'citybox' */

    $objResponse->addScript("document.getElementById('citybox').style.display = \"none\"");
  }

/* Только один элемент в списке? Это означает что мы можем сделать автозаполнение ! */

if($nCount == 1)  {
    $objResponse->addScript("document.getElementById('citybox').style.display = \"none\"");
    $objResponse->addScript("document.getElementById('search').value = \"".$sLastHit."\"");
  }

/* Мы заполняем значение элемента 'citybox' содержанием переменной 
 $sOut */
    
    $objResponse->addAssign("citybox", "innerHTML", $sOut);  
 
/* Возвращаем результат функции */
 
    return $objResponse->getXML();
}

/* создаем экземпляр класса xajax */

$objAjax = new xajax();

/* регистрируем функцию getCities для xajax */

$objAjax->registerFunction('getCities');

/*обработка запроса */

$objAjax->processRequests();

?>
<h1>Пример 4: 'Автозаполнение при поиске'</h1>
<p>Набирая текст в поле ввода ниже, список городов хранится на сервере. Если мы результат дополнения меньше 30, то будет показана подсказка. Пользователь может щелкнуть на элементе в списке и завершить заполнение поля. Если один результат, то поле будет заполнено автоматически.</p>
<p><a href="demonstratie4.phps">Посмотреть исходный код</a></p>
<p><a href="gemeenten.phps">Посмотреть файл содержащий списк городов</a></p>
<p><strong>Город:</strong></p>

<!-- With the onkeyup attribute we can monitor keypresses and call the
     backend function getCities through xajax as the user types -->

<input autocomplete="off" type="text" class="textbox" name="search" value="" id="search" onkeyup="xajax_getCities(document.getElementById('search').value);"/><br />
<div id="citybox">&nbsp;</div>
<p id="menulink"><a href="demonstratie.php">&raquo; Назад на главную</a></p>
<?php

?>

и фаил с массивом городов

Автозаполнение не работает. Я подключил библиотеку xajax.inc.php, но ничего не происходит? java scrip gишет ошибу - Error on page.
Кто поможет
Информацию брал отсюда - СКРИПТ АВТОЗАПОЛНЕНИЯ
--------------------
 
PM MAIL   Вверх
Aliance
Дата 14.12.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Цитата(helflip @  14.12.2006,  12:12 Найти цитируемый пост)
java scrip gишет ошибу - Error on page.

конкретно какую?
PM MAIL WWW ICQ Skype   Вверх
helflip
  Дата 14.12.2006, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Спасибо, уже разобрался забыл в шаблоне прописать  
Код

<?php $objAjax->printJavascript(); ?>
, но возникла другая проблема. У меня есть база MSSQL в ней фамилии имена телефонные номера.
Фамилия и имя написано по русски, xAjax не может работать с русским почему то, хотя кодировка стоит UTF-8, я поменял на windows-1251, скрипт стал просто выводить фамилии, а автодополнения не происходит.
Если кто знает подскажите как исправить.

Вот полный скрипт который на сайте. Вот полный скрипт который на сайте - www.myjomla.ru


Проще говоря, я забил фамилии из базы в массив,фамилии русские, и теперь не работает.

Это сообщение отредактировал(а) helflip - 14.12.2006, 20:40
--------------------
 
PM MAIL   Вверх
helflip
Дата 15.12.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Как сделать чтобы он понимал русский? Помогите плз
--------------------
 
PM MAIL   Вверх
Platon
Дата 16.12.2006, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: нет
Всего: 40



xajax (string $sRequestURI="", string $sWrapperPrefix="xajax_", string $sEncoding=XAJAX_DEFAULT_CHAR_ENCODING, boolean $bDebug=false)
Может пороещься тут? Кончтруктор, которому указываешь кодировку.
Или метод setCharEncoding (string $sEncoding)
PM MAIL ICQ   Вверх
helflip
Дата 19.12.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



Все спасибо разобрался, но я предпочел jsPrototip вместо xajax. Более интересная штука smile  
--------------------
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.