Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Help suggest скрипт прилогается / 12 сообщений из 12, страница 1 из 1
24.07.2009, 16:30
    #36108349
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
Доброго времени суток.

Хочу привести листинг поиска в стиле Google. Сразу оговорюсь - идея не моя. Я только ее адаптировал под PostgreSQL.

index.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/commons.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.autocomplete.js"></script>
</head>
<body>
<div style="margin:10px; padding:10px;">
<h1> Поиск как в Google </h1><hr>
<p style="MARGIN-TOP: 11px;">
 <form action="cse" id="cse-search-box">
  <div>Поиск:
    <input type="text" name="q" size="40"/>
    <input type="hidden" name="id" value="" />    
    <input type="submit" name="sa" value="Поиск" />
  </div>
</form></p>
<script type="text/javascript" src="js/suggest.js"></script></div>

</body>
</html>

find.php

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
<?php 
header("Content-Type: text/html; charset=utf-8");
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

$host = "localhost";
$user = "postgres";
$pass = "postgres";
$db = "usersdb";

$connection = pg_connect ("host=$host dbname=$db user=$user password=$pass");
if (!$connection)
{
die("Could not open connection to database server");
}


$q = addslashes($_GET["q"]);
$limit =  10 ;



if ($q) {

$query = "SELECT * FROM users WHERE word LIKE '$q%' LIMIT '$limit'"; 
$result = pg_query($connection, $query) or die("Error in query: $query. " . pg_last_error($connection));


   $results = array();

   while ($row = pg_fetch_assoc($result)) {

      $user = $row["user"];
      $id = $row["id"];

      $results[] = "$user:$id";

   }

   for($i= 0 ;$i<count($results);$i++){

	  $row_base = explode(":", $results[$i]);

	  $res = mb_strpos(mb_strtolower($row_base[ 0 ],"UTF-8"), mb_strtolower($_GET['q'],"UTF-8"));
	  if($res!==false&&$res== 0 ) {

	    $row_base[ 3 ] = trim($row_base[ 3 ]);

	  	print $row_base[ 0 ]."|".$row_base[ 1 ]."\n";

	  }
    }
}


pg_close($connection);
}

?>


suggest.js
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
jQuery.noConflict();

jQuery(document).ready(function(){


function liFormat (row, i, num) {

	var result = row[ 0 ] + '<p class=qnt>' + row[ 1 ] + '</p>';

	return result;

}

function selectItem(li) {

}

jQuery("#cse-search-box input[name='q']").autocomplete("find.php", {

	delay: 15 ,

	minChars: 1 , // АШКН  2 

	matchSubset: 1 ,

	autoFill:true,

	matchContains: 1 ,

	cacheLength: 10 ,

	selectFirst:true,

	formatItem:liFormat,

	maxItemsToShow: 10 ,

	onItemSelect:selectItem

}); 

});



commons.css
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
* {

    margin: 0 ;

    padding: 0 ;

}

html, body {

    background-color:#E2F2E2;

    font-family: "Trebuchet MS", Tahoma, Verdana, Arial, Helvetica, sans-serif;

    font-size: 8pt;

}

.ac_results {

	padding: 0px;

	border: 1px solid WindowFrame;

	background-color: Window;

	overflow: hidden;

}



.ac_results ul {

	width:  100 %;

	list-style-position: outside;

	list-style: none;

	padding:  0 ;

	margin:  0 ;

}



.ac_results iframe {

	display:none;/*sorry for IE5*/

	display/**/:block;/*sorry for IE5*/

	position:absolute;

	top: 0 ;

	left: 0 ;

	z-index:- 1 ;

	filter:mask();

	width:3000px;

	height:3000px;

}



.ac_results li {

	position:relative;

    margin: 0px;

	padding: 2px 5px;

	cursor: pointer;

	display: block;

	width:  100 %;

	font: menu;

	font-size: 11px;

	overflow: hidden;

}



.ac_loading {

	background : Window url('autocomplete_indicator.gif') right center no-repeat;

}



.ac_over {

	background-color: Highlight;

	color: HighlightText;

}

#example {

  position:absolute;

  top:10px;

  left:10px;

  width:150px;

  font-family: "Trebuchet MS", Tahoma, Verdana, Arial, Helvetica, sans-serif;

  font-size: 10pt;

}

#example2 {

  position:absolute;

  top:10px;

  left:170px;

  width:240px;

  font-family: "Trebuchet MS", Tahoma, Verdana, Arial, Helvetica, sans-serif;

  font-size: 10pt;

}

.qnt {

  position:absolute;

  top:2px;

  right:10px;

  font-size: 0 .8em;

  color:#26A908;

}


Есть еще два jquery* файла.

Вопрос таков:
В таблице хранятся два слолбца user и id.
Нужно, чтобы после поиска отправлялся не только user но и id <input type="hidden" name="id" value="" /> .
Как это сделать ума не приложу.
Помогите.

За ранее спасибо.
...
Рейтинг: 0 / 0
25.07.2009, 00:42
    #36108979
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
А можно не через строчку, а через две, а то как-то забито все?
Непонятно, что и где отправляется на сервер. Если это внешняя библиотека, то надо указать какая - гадать не хочется.
...
Рейтинг: 0 / 0
25.07.2009, 13:40
    #36109118
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
IDVsbruckА можно не через строчку, а через две, а то как-то забито все?

Прошу прощения, что так получилось.
IDVsbruck
Непонятно, что и где отправляется на сервер. Если это внешняя библиотека, то надо указать какая - гадать не хочется.
Я добавляю архив со всеми файлами (может кому пригодится).
Во время выпадания предлагаемого списка показываться и user и id - и это правильно :-).
Когда выбор сделан видно только user - и это тоже то, что нужно.
Но мне нужно, чтобы на сервер отправлялся не только user, но и в скрытом поле
Код: plaintext
<input type="hidden" name="id" value="" />  
на сервер отправлялся id .
Можно ли ето сделать? И как?

Всем за ранее спасибо за помощь.
...
Рейтинг: 0 / 0
25.07.2009, 13:41
    #36109120
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
Собственно архив.
...
Рейтинг: 0 / 0
27.07.2009, 11:34
    #36110345
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
Не уж то никто не знает?
...
Рейтинг: 0 / 0
27.07.2009, 11:41
    #36110375
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
HunterNomadНе уж то никто не знает?
Как тебе сказать... . Чтобы заработало, нужно установить jquery, какой-то suggest.js, пхп, постгеSQL... . Да и букаф много. Чего не работает-то?
...
Рейтинг: 0 / 0
27.07.2009, 12:42
    #36110639
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
ShSergeHunterNomadНе уж то никто не знает?
Как тебе сказать... . Чтобы заработало, нужно установить jquery, какой-то suggest.js, пхп, постгеSQL... . Да и букаф много. Чего не работает-то?

Все работает как в гуглевом поисковике. В моем случае с лево выводит список user, а с права его id. Когда необходимого user вібрать то в поле остается только user. Но мне нужно, чтобы при отправки выбранного, в скрытом поле отправлялся и id.
О как.
...
Рейтинг: 0 / 0
27.07.2009, 13:59
    #36110901
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
Хочу повторить свой вопрос: в стандартном jQuery нет функции autocomplete, значит, ты используешь плагин. Так вот, когда задаешь вопрос, касающийся какого-то плагина, надо хотя бы известить об этом общественность - не все используют плагины к фреймворкам.

На всякий случай в поисковике задал критерий поиска "jQuery autocomplete" на русском. Первая и вторая ссылки ответили на твой вопрос - читай внимательнее.
...
Рейтинг: 0 / 0
27.07.2009, 15:07
    #36111177
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
IDVsbruckХочу повторить свой вопрос: в стандартном jQuery нет функции autocomplete, значит, ты используешь плагин. Так вот, когда задаешь вопрос, касающийся какого-то плагина, надо хотя бы известить об этом общественность - не все используют плагины к фреймворкам.

На всякий случай в поисковике задал критерий поиска "jQuery autocomplete" на русском. Первая и вторая ссылки ответили на твой вопрос - читай внимательнее.

Спасибо, я с этими ссылками уже работал. Почему то они не работают.
Я, к сожалению, не селен в javascript и потому не могу решить свою задачу самостоятельно. Все библиотеки (плагины - так будет правильно) я прикрепил в теме (см выше).
Если бы я нашел более практичный пример соответствующий моей задачи, то, думаю, я или сам ее решил или привел полны пример с просьбой помочь.

Все равно спасибо. Я еще раз пересмотрю Ваши ссылки. Это лучше чем никакой помощи вообще.
...
Рейтинг: 0 / 0
27.07.2009, 20:27
    #36112023
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
ShSerge доступно объяснил, что надо делать с таким "набором" - на это мало кто пойдет.

Что каксается ссылок, то ответ бросается в глаза сразу:
"Список опций приведен ниже:
...
extraParams - дополнительные параметры, которые могут быть переданы на сервер."

Думаю, проблем указать что-то типа {col_user:user, col_id:id} не должно быть.
...
Рейтинг: 0 / 0
28.07.2009, 10:23
    #36112625
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
IDVsbruckShSerge доступно объяснил, что надо делать с таким "набором" - на это мало кто пойдет.

Что каксается ссылок, то ответ бросается в глаза сразу:
"Список опций приведен ниже:
...
extraParams - дополнительные параметры, которые могут быть переданы на сервер."

Думаю, проблем указать что-то типа {col_user:user, col_id:id} не должно быть.
IDVsbruck 5+ :-)))
1. Выше я писал, что я почти не знаю javascript, а читать я умею. Даже на буржуйских форумах extraParams рассматривался. И ента фиговина не всегда работает (причина не понятна).
2. Я и не утверждал, что все с ентьими плагинами, библиотеками, ... работают. Просто форум - он на то и форум, чтобы на нем такие "чайники" как я задавали вопросы, а такие ... ну всякие "гуру" им помогали (учили уму разуму).
3. Ну очень мне эта система поиска нужна - без нее мне кирдык об леьарбоса. Так что буду далее носам землю рыть.
И если ни с этой х...овиной так с другой может повезет.

О как.
...
Рейтинг: 0 / 0
28.07.2009, 10:26
    #36112636
HunterNomad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Help suggest скрипт прилогается
Вот исходный архив, с которого у меня все начиналось (никаких SQL ставить ни надо) .
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Help suggest скрипт прилогается / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]