|
|
|
| Делаю динамичный поиск пользователей на сайте. Использую js и php. Мучаюсь уже второй или третий день. Испробовал все адекватные и не очень варианты. javascript просто не хочет выполнятся, хотя я уверен что он в бразуере включен. Помогите, подскажите в чем может быть проблема?
Файл search.php
<?php
session_start();
include("db_connect.php");
?>
<html>
<head>
<title>Поиск пользователей</title>
<script src="http://yandex.st/jquery/1.7.2/jquery.min.js"></script>
<script>
$(window).load(function() {
$('#search_name').keyup(function(I) {
switch(I.keyCode) {
// игнорируем нажатия на эти клавишы
case 13: // enter
case 27: // escape
case 38: // стрелка вверх
case 40: // стрелка вниз
break;
default:
if($(this).val().length>2) {
var findUser = $(this).val();
var len = 0;
$.get("find_user.php", { "username":findUser } function(data) {
var list = eval("("+data+")");
len = list.length;
if(len > 0) {
$('#search_result').html("").show();
for(var i in list) {
if(list[i]!='') {
$('#search_result').append('<div class="post"><a href="profile.php?user=' + list[i] + '">' + list[i] + '</a></div>');
}
}
}
}, 'html');
}
}
}
</script>
</head>
<body>
<link href="style.css" rel="stylesheet" type="text/css">
<div class="panel">
<?php
include("panel.php");
?>
</div>
<div id="search" class="profile">
<form id="sForm" method="get" name="SearchForm" onsubmit="return false"> <!--action="search.php" method="post"-->
<input id="search_name" onkeydown="a()" type="text" name="username" placeholder="Введите имя пользователя..." autocomplete="off" style="width:96%; margin-left:2%;">
</form>
<div id="search_result" class="findedlist">
</div>
</div>
</body>
</html>
|
и файл find_user.php
<?php
if(!empty($_GET['username']))
{
include("db_connect.php");
$array=array();
$db->real_query("SELECT login FROM users WHERE login LIKE '%" . $_GET['username'] . "%'");
$result = $db->store_result();
while($data = $result->fetch_array(MYSQLI_ASSOC))
{
$array[] = $data['login'];
}
echo "['".implode("','", $array)."']";
}
exit();
?>
|
| |
|
|
|
|
|
|
|
для: Razorik
(09.11.2013 в 20:25)
| | var list = eval("("+data+")");
echo "['".implode("','", $array)."']";
$.get("find_user.php", { "username":findUser } function(data) {
if(!!data) {
//получение
}
}, 'json');
<?
if($usr = mysql_real_escape_string(trim($_GET['username']))) {
"....WHERE login LIKE '%" . $usr. "%'");
.....
echo json_encode($array, JSON_UNESCAPED_UNICODE);
//аргумент JSON_UNESCAPED_UNICODE только для РНР не ниже 5.4
//json работает только с UTF, если кодировка 1251,
//то предварительно конвертировать содержимое $array в UTF
|
| |
|
|
|