Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Автокомплит

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Fier
Отправлено: 06 Января, 2013 - 13:20:24
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Сделал autocomplete на сайте. Есть одно НО. не подхватывает русские буквы.

Сам код:

CODE (javascript):
скопировать код в буфер обмена
  1. <!-- Автодополнение -->
  2.  
  3. <script type="text/javascript" src="js/jquery.js"></script>
  4. <script type="text/javascript" charset="windows-1251">
  5.         function lookup(inputString) {
  6.                 if(inputString.length == 0) {
  7.                         // Hide the suggestion box.
  8.                         $('#suggestions').hide();
  9.                 } else {
  10.                         $.post("autocomplete.php", {queryString: ""+inputString+""}, function(data){
  11.                                 if(data.length >0) {
  12.                                         $('#suggestions').show();
  13.                                         $('#autoSuggestionsList').html(data);
  14.                                 }
  15.                         });
  16.                 }
  17.         } // lookup
  18.        
  19.         function fill(thisValue) {
  20.                 $('#inputString').val(thisValue);
  21.                 setTimeout("$('#suggestions').hide();", 200);
  22.         }
  23. </script>
  24.  
  25. <!-- Автодополнение -->


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.        
  3.         // PHP5 Implementation - uses MySQLi.
  4.         // mysqli('localhost', 'yourUsername', 'yourPassword', 'yourDatabase');
  5.         $db = new mysqli('localhost', 'root' ,'111', 'ovb');
  6.        
  7.         if(!$db) {
  8.                 // Show error if we cannot connect.
  9.                 echo 'ERROR: Could not connect to the database.';
  10.         } else {
  11.                 // Is there a posted query string?
  12.                 if(isset($_POST['queryString'])) {
  13.                         $queryString = $db->real_escape_string($_POST['queryString']);
  14.                        
  15.                         // Is the string length greater than 0?
  16.                        
  17.                         if(strlen($queryString) >0) {
  18.                                 // Run the query: We use LIKE '$queryString%'
  19.                                 // The percentage sign is a wild-card, in my example of countries it works like this...
  20.                                 // $queryString = 'Uni';
  21.                                 // Returned data = 'United States, United Kindom';
  22.                                
  23.                                 // YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.
  24.                                 // eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10
  25.                                
  26.                                 $query = $db->query("SELECT lname, fname, sname, id FROM clients WHERE lname LIKE '$queryString%' LIMIT 10");
  27.                                 if($query) {
  28.                                         // While there are results loop through them - fetching an Object (i like PHP5 btw!).
  29.                                         while ($result = $query ->fetch_object()) {
  30.                                                 // Format the results, im using <li> for the list, you can change it.
  31.                                                 // The onClick function fills the textbox with the result.
  32.                                                
  33.                                                 // YOU MUST CHANGE: $result->value to $result->your_colum
  34.                                         echo '<li onClick="fill(\'' .$result->lname. '' .$result->fname. '' .$result->sname. '' .$result->id. '\');">'.$result->lname. ''.$result->fname.'' .$result->sname.'' .$result->id.'</li>';
  35.                                 }
  36.                                 } else {
  37.                                         echo 'ERROR: There was a problem with the query.';
  38.                                 }
  39.                         } else {
  40.                                 // Dont do anything.
  41.                         } // There is a queryString.
  42.                 } else {
  43.                         echo 'There should be no direct access to this script!';
  44.                 }
  45.         }
  46. ?>


CODE (html):
скопировать код в буфер обмена
  1. <p>Введите Фамилию:</p>
  2.                                 <input type="text" name="smember" width="20" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
  3.                 <div class="suggestionsBox" id="suggestions" style="display: none; z-index: 500;">
  4.                                 <img src="css_images/upArrow.png" style="position: relative; top: -12px; left: 50px;" alt="upArrow" />
  5.                                 <div class="suggestionList" id="autoSuggestionsList">
  6.                                         &nbsp;
  7.                                 </div>
  8.                             </div>


Помогите разобраться куда пихать. Сижу мучаю уже iconv около 2-ух часов.
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Января, 2013 - 13:31:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Кодировка, сэр?

При правильно сохраненных исходных файлах никакой iconv не нужен.
 
 Top
Fier
Отправлено: 06 Января, 2013 - 13:34:26
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Все файлы сохранены в UTF8. И сайт весь на UTF работает. Долго мудрился с пхп, что бы меняло в запросе с ВИНДОВС1251 на УТФ.

Вот теперь с такой траблой столкнулся. Но тут тяжелее, квери слабо знаю то.
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Января, 2013 - 13:34:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Fier пишет:
type="text/javascript" charset="windows-1251"
Ню-ню. Что я и говорил...
(Добавление)
Еще и база наверное не в утф-8, да?
(Добавление)
Переведите вообще ВСЕ в утф-8, проблема рассосется.
 
 Top
Fier
Отправлено: 06 Января, 2013 - 13:38:46
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




utf8_general_ci - вся база.

Поменял - <script type="text/javascript" charset="UTF-8">
Прикреплено изображение (Нажмите для увеличения)
Screen Shot 2013-01-06 at 13.37.50.png
 
 Top
caballero
Отправлено: 06 Января, 2013 - 14:16:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
utf8_general_ci - вся база.

и что? важно в какой кодировке она отдает

mysql_query("SET NAMES 'utf8'") и будут тебе счастье


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Fier
Отправлено: 06 Января, 2013 - 14:27:14
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Нема счастья.
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Января, 2013 - 14:27:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Значит что-то еще забыли.
 
 Top
broshurkaplus
Отправлено: 06 Января, 2013 - 14:34:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




не вглядываясь плотно:
что-то было о том, что 1 русский символ это в utf-8, те в бд == 2символам, может поэтому...
в браузере он длину фактически считает, а вот когда с бд...
сам както мучился

не понял куда не подхватывает? не производит сравнение по LIKE ?
вы просто попробуйте сначала вывести обратно на экран, то что отсылаете, быть может он передает в селект совсем не в таком виде, как вам кажется

да, еще - когда real_escape_string быть может экранирует что то, проверьте что передается и что в базе, если передалось одинаково, то не должно так быть, может " или пробелы заменены, выведите себе что передалось, когда такая строка точно в базе есть и сравните, вероятно не совпадает и выборки нету.

(Отредактировано автором: 06 Января, 2013 - 14:44:49)

 
 Top
Fier
Отправлено: 06 Января, 2013 - 14:39:21
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Пересохранил все файлы уже. Результата 0.

Когда ввожу - Denys, оно мне предлагает варианты.

Когда ввожу - тест - оно мне ничего не предлагает. Тоесть русскими буквами оно даже не может выполнить поиск по базе.
 
 Top
DeepVarvar Супермодератор
Отправлено: 06 Января, 2013 - 14:56:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ну не может же быть что у всех работает а у вас не работает.
Ищите ошибку. Мы то вобщем все что могли сделали и подсказали.
 
 Top
caballero
Отправлено: 06 Января, 2013 - 15:00:05
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Fier пишет:
Нема счастья.

Значит не судьба Огорчение
(Добавление)

Цитата:
"Спят усталые игрушки" в джазовой обработке
игрушки из секшопа в джазовой обработке? Мсье знает толк в извращениях ©


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
broshurkaplus
Отправлено: 06 Января, 2013 - 15:06:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




покажите строку сюда или сами проверьте:
что вводите в поле
что на сервер приходит
что в запросе
и что есть в бд

значит у вас нет такой строки в бд,выведите ее в экран себе и сравните
 
 Top
Fier
Отправлено: 06 Января, 2013 - 15:09:30
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.  
  3. $(document).ready(function(){
  4.     $("#button").click(function(){
  5.  
  6.      var inputString = $("#inputString").val();
  7.      
  8.            
  9.          alert(inputString);  
  10.            
  11.       $.ajax({
  12.           type: "POST",
  13.           url: "autocomplete.php",
  14.           data: {
  15.               inputString: inputString
  16.  
  17.          }
  18.  });
  19.  });
  20.  
  21.  });
  22.  
  23. </script>


Может правда смешно, но для себя такой вариант нашел того чего отправляет - вывод алертом. Ввожу на русском и все окей.

Проверил еще другим способом. Ввел в БД:

Имя - 123
Фамилию - Вася

Когда захожу на страницу автокомплита, получаю результат:

Имя оно отображает - 123
А вместо фамилии - ?????????

Тоесть база отдает не так как надо.

Но вон и алертом сделал вывод. Все же отправляем в нужной кодировке.
 
 Top
Fier
Отправлено: 06 Января, 2013 - 15:13:29
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Решил сделать:

$db = new mysqli('localhost', 'root' ,'111', 'ovb');

mysql_query('set names utf8');

Добавить - Сет НЕЙМС.

Ответ дает на скриншоте.
Прикреплено изображение (Нажмите для увеличения)
Screen Shot 2013-01-06 at 15.12.41.png
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB