Решил прикрутить к своему php скрипту подсказку для текстового поля на Ява Скрипте. Нашел простой и нужный скриптик в сети, который вытаскивает подсказки из таблицы БД все как мне надо. Вот сам скрипт:
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Пример автозаполнения формы</title>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function hide() {
setTimeout("$('#suggestions').hide()", 200);
} // hide
function lookup(inputString) {
if(inputString.length == 0) {
// если длина нулевая то скрываем блок выбор
hide();
} else {
$.post("cities.php", {q: ""+inputString+""}, function(data){
if(data.length > 0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
}
} // lookup
function fill(thisValue) {
$('#inputString').val(thisValue);
hide();
} // fill
</script>
<style type="text/css">
.suggestionsBox {
position: relative;
margin: 10px 0px 0px 0px;
left: 30px;
width: 200px;
background-color: #212427;
-moz-border-radius: 7px;
-webkit-border-radius: 7px;
border: 2px solid #000;
color: #fff;
}
.suggestionList {
margin: 0px;
padding: 0px;
}
.suggestionList li {
margin: 0px 0px 3px 0px;
padding: 3px;
cursor: pointer;
}
.suggestionList li:hover {
background-color: #659CD8;
}
</style>
</head>
<body>
<div>
<div>
Введите название города:<br />
<input size="30" id="inputString" onkeyup="lookup(this.value);" type="text" autocomplete="off" onblur="hide();" />
</div>
<div class="suggestionsBox" id="suggestions" style="display: none;">
<div class="suggestionList" id="autoSuggestionsList">
</div>
</div>
</div>
</body>
</html>
Вот на php коннектор к таблице городов:
cities.php
<?php
$db = new mysqli('localhost', 'root', 'root', 'test');
if
(!$db) {
echo 'ERROR: Could not connect to the database.';
die();
}
$db->set_charset("utf8");
// В запросе есть ли переменная q
if (isset($_POST['q'])) {
// не забываем о безопасности
$q =
$db->real_escape_string($_POST['q']);
// больше ли нуля?
if
(strlen($q) > 0) {
// Для примера используется запрос вида
LIKE '$q%'
if ($query = $db->query( "SELECT name FROM
cities WHERE name LIKE '$q%' LIMIT 10")) {
while ($result = $query->fetch_object()) {
// для форамтирования результата используется список
<li>
echo ("<li
onclick=\"fill('$result->name');\">$result->name</li>");
}
$query->close();
} else {
echo 'ERROR: ' .
$db->error;
}
}
}
$db->close();
?>
Вот дамп таблицы cities:
-- MySQL dump 10.11
--
-- Host: localhost Database: test
-- ------------------------------------------------------
-- Server version 5.0.67-0ubuntu6-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `cities`
--
DROP TABLE IF EXISTS `cities`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `cities` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=560 DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;
--
-- Dumping data for table `cities`
--
LOCK TABLES `cities` WRITE;
/*!40000 ALTER TABLE `cities` DISABLE KEYS */;
INSERT INTO `cities` VALUES (281,'Москва'),(282,'Санкт-Петербург'),(558,'Мегион'),(559,'Краснообск');
/*!40000 ALTER TABLE `cities` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2009-03-11 22:47:45
Проблема такая: не могу изменить кодировку с UTF-8 на свою cp1251 для того чтобы этот скрипт прикрутить к своему сйату, у меня на ней и сами скрипты и вся БД.
Вот этот блок из предложенных 2 скриптов и дампа, рабочий. Довольно просто его подцепить и проверить. Единственное, что кириллица зашифрована абракадаброй т.е. заголовок страницы или надпись"Введите город:", но подсказки всплывают правильные и читаемые, т.е Москва, Минск и т.д.
Вместо таблицы городов настроил скрипт коннектора на свою БД для того чтобы юзать свою таблицу, в ней вместо городов модели машин и все!!! Вместо всплывающих слов с моделями...всплывает только черный фон, с белыми маркерами - без букв, помогите настроить очень прошу вот дамп моей таблицы:
CREATE TABLE `model_inauto` (
`id_mod` int(5) NOT NULL auto_increment,
`kats_id` int(5) NOT NULL,
`model` text,
PRIMARY KEY (`id_mod`)
) ENGINE=MyISAM AUTO_INCREMENT=611 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=611 ;
--
-- Дамп данных таблицы `model_inauto`
--
INSERT INTO `model_inauto` VALUES (1, 29, 'Altis');
INSERT INTO `model_inauto` VALUES (2, 29, 'Applause');
INSERT INTO `model_inauto` VALUES (3, 29, 'Atrai');
INSERT INTO `model_inauto` VALUES (4, 29, 'Atrai Wagon');
INSERT INTO `model_inauto` VALUES (5, 29, 'Atrai7');
INSERT INTO `model_inauto` VALUES (6, 29, 'Be-Go');
INSERT INTO `model_inauto` VALUES (7, 29, 'Boon');
Спустя 1 час, 7 минут, 17 секунд (8.07.2010 - 13:54) inpost написал(а):
Единственный мудрый совет - меняй кодировку на ЮТФ-8 навсегда!
Спустя 33 минуты, 3 секунды (8.07.2010 - 14:27) ABC написал(а):
А чем она лучше?
Спустя 2 часа, 59 минут, 23 секунды (8.07.2010 - 17:27) Гость_Александр написал(а):
Цитата |
А чем она лучше? |
Мало того что ты спрашиваешь "НЕЧТО", что мусолилось на данном форуме 1000 раз(в поиске забанили?), так и делаешь это еще после 4-х месяцев "разбирания" в PHP. Выставил хламыду кода тупо перекатав где то - и что у него не так - расскажите ребенку ...
Не думал все таки заняться каким то своим делом, а не лезть в программисты , когда нет даже минимума способностей ?
Спустя 7 минут, 22 секунды (8.07.2010 - 17:34) ABC написал(а):
Гость_Александр, откровенно даже ни капли не зацепило напишите еще.
Спустя 13 минут, 27 секунд (8.07.2010 - 17:48) Гость_Александр написал(а):
Цитата |
Гость_Александр, откровенно даже ни капли не зацепило напишите еще. |
Это была не зацепка, а житейский совет - открой ясны очи О ЧАЙНИК - не во все двери можно зайти ... программирование - не для всех. Если так по мелочам тупишь, то что с более сложным будешь делать? На форумах слезы лить?
Спустя 4 минуты, 26 секунд (8.07.2010 - 17:52) ABC написал(а):
Гость_Александр, ещё!!!
Спустя 3 минуты, 14 секунд (8.07.2010 - 17:55) ABC написал(а):
Нашел способ если вручную перекодировать типа:
$unicode=array(chr(208)->(129));
$win=array(chr(192)->(168));
$result->model= str_replace($unicode,$win,$result->model);
вот так все робит, но это сильно тормозит работу скрипта, может кто подскажет все же..должен быть способ через настройки сделать.
iconv('utf-8', 'windows-1251',$result->model); - почему то не работает!!!
$unicode=array(chr(208)->(129));
$win=array(chr(192)->(168));
$result->model= str_replace($unicode,$win,$result->model);
вот так все робит, но это сильно тормозит работу скрипта, может кто подскажет все же..должен быть способ через настройки сделать.
iconv('utf-8', 'windows-1251',$result->model); - почему то не работает!!!
Спустя 4 минуты, 57 секунд (8.07.2010 - 18:00) inpost написал(а):
После твоих подколок с анонимами, у меня пропало желание помогать тебе...
Ищи ответ сам
Ищи ответ сам
Спустя 3 минуты, 18 секунд (8.07.2010 - 18:03) ABC написал(а):
inpost, вот это круто! Я никого не покалывал, айпишник или mac пробить не можешь?
У меня пока в поряде все с головой, чтоб самим с собой беседовать.
У меня пока в поряде все с головой, чтоб самим с собой беседовать.
Спустя 4 минуты, 40 секунд (8.07.2010 - 18:08) Gabriel написал(а):
а может оба успокоитесь?
Спустя 4 минуты, 33 секунды (8.07.2010 - 18:13) ABC написал(а):
Да все в порядке
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.