2012-07-16 54 views
1

我有一个网站,我需要用户与其他用户进行交互。到目前为止,所有这些工作都是在JQuery/Jquery Mobile和PHP中用MySQL数据库完成的。如何在PHP/PDO中创建动态文本字段?

用户需要选择其他用户在游戏中对战,但可能不知道他们的确切用户名。

我想是一个动态文本,搜索DB中的用户表,并且拉回到在搜索栏中匹配字母用户名,因此,例如用户类型:

SAM和文本框返回所有从DB,SamSmith,SamJones,SamBlah,然后按照用户类型

回答

3

Yhat你正在寻找被称为“自动完成”的相关用户

你可以自己做,但是目前已经开发了一些插件帮助你。

http://jqueryui.com/demos/autocomplete/

你还是会需要编写查询来获取服务器端的用户列表。

希望这有助于

+0

它'值得注意的是数据将使用PHP/PDO,json_encoded生成,并在请求用户列表自动完成时发送给浏览器。 – 2012-07-16 15:20:09

0
  1. 进行查询返回用户的数组。
  2. 然后将用户循环到HTML并用JavaScript代码将它们包含在Jquery Autocomplete中。

    $query = "SELECT id,username FROM users"; 
    $result = mysql_query($query) or die(mysql_error()); 
    
    while($row = mysql_fetch_array($result)) 
    { 
        $users[] = $row; 
    } 
    

然后循环jQuery的自动完成内部用户名可用标签

+0

你能更具体吗?将用户循环到HTML是什么意思? – 2012-07-16 15:46:02

1

这PHP代码将是该jQuery库 “autocomplete.php”

<?php 
    $q=$_GET['q']; 
    $my_data=mysql_real_escape_string($q); 

    $mysqli=mysqli_connect($host,$user,$password,$db) or die("Database Error"); 
    $sql="SELECT name FROM products WHERE name LIKE '%$my_data%' ORDER BY name"; 
    $result = mysqli_query($mysqli,$sql) or die(mysqli_error()); 

    if($result) 
    { 
     while($row=mysqli_fetch_array($result)) 
     { 
      echo $row['name']."\n"; 
     } 
    } else { 
     echo "No Result!"; 
    } 
?> 

有用
<script> 
$(document).ready(function(){ 
$("#tag").autocomplete("autocomplete.php", { 
     selectFirst: true 
    }); 
}); 
</script> 

<input id="tag" name="product_name" type="text" size="12"/>