diff options
| -rw-r--r-- | phpBB/assets/javascript/core.js | 26 | ||||
| -rw-r--r-- | phpBB/memberlist.php | 11 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/memberlist_search.html | 23 | ||||
| -rw-r--r-- | phpBB/styles/subsilver2/template/memberlist_search.html | 23 |
4 files changed, 33 insertions, 50 deletions
diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js index ac866f7c78..c2291c7001 100644 --- a/phpBB/assets/javascript/core.js +++ b/phpBB/assets/javascript/core.js @@ -512,6 +512,32 @@ phpbb.timezonePreselectSelect = function(forceSelector) { } }; +// Listen live search box events +$('.liveinput').keyup(function() { + var str = this.value; + var j = 0; + if (str.length < 3) { + $("#livesearch").innerHTML=""; + return; + } + + $.ajax({ + url:'memberlist.php?mode=livesearch&'+"&q="+str, + success:function(result) { + $.each(result, function(idx, elem) { + j = (idx%2)+1; + $("#livesearch").append("<tr class='bg" + j + " row" + j + "'><td><a href='memberlist.php?mode=viewprofile&u=" + elem.id + "' target='_blank'>" + elem.name + "</a></td></tr>"); + }) + } + }); +}); + +$('.liveinput').blur(function() { + setTimeout(function () { + document.getElementById("livesearch").innerHTML=""; + }, 500); +}); + // Toggle notification list $('#notification_list_button').click(function(e) { $('#notification_list').toggle(); diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index d2ba27559c..748b2548c9 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -983,7 +983,6 @@ switch ($mode) case 'livesearch': $username_chars = $request->variable('q', '', true); - $hint = ""; $sql = 'SELECT username, user_id FROM ' . USERS_TABLE . ' @@ -991,17 +990,17 @@ switch ($mode) AND username ' . $db->sql_like_expression($username_chars . $db->any_char); $result = $db->sql_query_limit($sql, 10); + $user_list = array(); $i = 1; while ($row = $db->sql_fetchrow($result)) { $j = ($i%2)+1; - $hint.= "<tr class='bg".$j." row".$j."'><td><a href='" . - $phpbb_root_path."memberlist.$phpEx". "?mode=viewprofile&u=" . $row['user_id'] . - "' target='_blank'>" . - $row['username'] . "</a></td></tr>"; + $user_list[] = array("id" => $row['user_id'], "name" => $row['username']); $i++; } - echo $hint; + + $json_response = new \phpbb\json_response(); + echo $json_response->send($user_list); exit(); break; diff --git a/phpBB/styles/prosilver/template/memberlist_search.html b/phpBB/styles/prosilver/template/memberlist_search.html index 59b7b0a5a7..15f44bf2e5 100644 --- a/phpBB/styles/prosilver/template/memberlist_search.html +++ b/phpBB/styles/prosilver/template/memberlist_search.html @@ -1,24 +1,3 @@ -<script> - function showHint(str) { - if (str.length<3) { - document.getElementById("livesearch").innerHTML=""; - return; - } - - $.ajax({ - url:'{S_LIVE_SEARCH_ACTION}'+"&q="+str, - success:function(result) { - $("#livesearch").html(result); - } - }); - } - function clearSearch() { - setTimeout(function () { - document.getElementById("livesearch").innerHTML=""; - }, 500); - } -</script> - <h2 class="solo">{L_FIND_USERNAME}</h2> <form method="post" action="{S_MODE_ACTION}" id="search_memberlist"> @@ -30,7 +9,7 @@ <fieldset class="fields1 column1"> <dl> <dt><label for="username">{L_USERNAME}{L_COLON}</label></dt> - <dd><input type="text" name="username" id="username" value="{USERNAME}" class="inputbox" autocomplete="off" onkeyup="showHint(this.value)" onblur="clearSearch()" /> <table class="table1" id="livesearch"></table> </dd> + <dd><input type="text" name="username" id="username" value="{USERNAME}" class="inputbox liveinput" autocomplete="off" /> <table class="table1" id="livesearch"></table></dd> </dl> <!-- IF S_EMAIL_SEARCH_ALLOWED --> <dl> diff --git a/phpBB/styles/subsilver2/template/memberlist_search.html b/phpBB/styles/subsilver2/template/memberlist_search.html index ba72e4ee8d..5ebff93320 100644 --- a/phpBB/styles/subsilver2/template/memberlist_search.html +++ b/phpBB/styles/subsilver2/template/memberlist_search.html @@ -64,27 +64,6 @@ </script> <!-- ENDIF --> -<script> - function showHint(str) { - if (str.length<3) { - document.getElementById("livesearch").innerHTML=""; - return; - } - - $.ajax({ - url:'{S_LIVE_SEARCH_ACTION}'+"&q="+str, - success:function(result) { - $("#livesearch").html(result); - } - }); - } - function clearSearch() { - setTimeout(function () { - document.getElementById("livesearch").innerHTML=""; - }, 500); - } -</script> - <form method="post" action="{S_MODE_ACTION}" name="search"> <table class="tablebg" width="100%" cellspacing="1"> @@ -96,7 +75,7 @@ </tr> <tr> <td class="row1"><b class="genmed">{L_USERNAME}{L_COLON}</b></td> - <td class="row2"><input class="post" type="text" name="username" value="{USERNAME}" autocomplete="off" onkeyup="showHint(this.value)" onblur="clearSearch()" /> <table class="tablebg" id="livesearch"></table> </td> + <td class="row2"><input class="post liveinput" type="text" name="username" value="{USERNAME}" autocomplete="off" /> <table class="tablebg" id="livesearch"></table></td> <!-- IF S_EMAIL_SEARCH_ALLOWED --> <td class="row1"><b class="genmed">{L_EMAIL}{L_COLON}</b></td> <td class="row2"><input class="post" type="email" name="email" value="{EMAIL}" /></td> |
