Показать сообщение отдельно
  #1 (permalink)  
Старый 14.02.2016, 14:18
Rio Rio вне форума
Новичок на форуме
Отправить личное сообщение для Rio Посмотреть профиль Найти все сообщения от Rio
 
Регистрация: 14.02.2016
Сообщений: 3

повторный autocomplete
Здравствуйте, уважаемые форумчане.
Осваиваю javascript и программирование в целом. Столкнулся со следующей задачей: при выводе автокомплитом списка из БД необходимо реализовать функцию просмотра полной строки при нажатии на один из результатов выдачи, без перезагрузки страницы.
В приведенном ниже коде в автокомплите выводятся только id, тайтл и теги страниц; выводить всё содержимое строки для просмотра при количестве строк более 50 посчитал нерациональным способом (загружать страницу большим объёмом данных). В качестве решения предположил, что можно воспользоваться ещё раз методом автокомплит, запускаемым событием onclick, но с поиском значения в БД по выбранному id и выводом уже полной строки sql. Т.е. результаты первого поиска автокомплита остаются на странице, а второй поиск поочерёдно выводит данные в отдельный блок при нажатии на одну из строк-результатов первого поиска.
Вопрос: как передать переменную (id) выбранной строки в другой обработчик автокомплита (в другую форму на index.php).
<!DOCTYPE HTML>
<html>

<head>
  <meta charset="utf-8">
  <title>Title</title>
  <style type="text/css">@import url("style.css");</style>
  <script src="jquery.js"></script>

<script>
$(document).ready(function(){
	
	$("#query").keyup(function(){
		var numChars = $(this).val().length;
		
		if (numChars>=3){
			var queryString = $(this).val();
			$.post(
				"search.php",
				{
					queryString: queryString
				},
				function(data){
					if (data !=""){
						$("#autocomplete").show();
						$("#autocomplete").html(data);
					}
					else{
						$("#autocomplete").show();
						$("#autocomplete").html("<i>Нет результатов по введеному запросу)</i>");
					}
				}
			);
		}else if (numChars<3){
			$("#autocomplete").hide();
		} else if(numChars == 0){
			$("#autocomplete").html("");
		}
	});
});
</script>
</head>
<body>

<input type="text" placeholder="Поиск" id="query" />
<div id="autocomplete"></div>
<div id="onclickautocomplete"></div><!--предполагаемый блок вывода второго автокомплита-->

</body>
</html>


Обработчик файла search.php
if(isset($_POST["queryString"])){
		$connect = mysql_connect("localhost", "root", "");
		mysql_select_db("testtwo");
		mysql_query("SET NAMES cp1251");
		
		$string = iconv("UTF-8","cp1251",$_POST["queryString"]);
		
		$query = mysql_query("SELECT id,newtegs,title FROM dataz WHERE title LIKE '%$string%' ") or die (mysql_error());
		
		if($myrow = mysql_num_rows($query) > 0){
			$myrow = mysql_fetch_array($query);
			do{
				echo '<br>' .
				"<table id='table'><tr><a href='#'>
				<td id='id'>".$myrow[id]."</td>",
				"<td id='newtegs'>".$myrow[newtegs] ."</td>", 
				"<td id='title'>".$myrow[title]."</td>
				</a></tr></table>"; 
			}
			while ($myrow = mysql_fetch_array($query));
		}
	}

Благодарю, что уделяете время моему вопросу.
Ответить с цитированием