2012-07-16 3 views
1

J'ai un site Web où j'ai besoin d'utilisateurs pour interagir avec d'autres utilisateurs. Jusqu'à présent, tout est fait dans JQuery/Jquery Mobile et PHP avec une base de données MySQL.Comment créer un champ de texte dynamique en PHP/PDO?

Les utilisateurs doivent sélectionner d'autres utilisateurs pour jouer dans un jeu, mais ils peuvent ne pas connaître leur nom d'utilisateur exact.

Ce que je voudrais est un champ de texte dynamique qui recherche le usertable dans le DB, et retire les noms d'utilisateur qui correspondent aux lettres dans le champ de recherche, donc par exemple un type d'utilisateur:

SAM et le TextField retourne tous les utilisateurs concernés de la DB, SamSmith, SamJones, SamBlah, alors que les types d'utilisateurs

Répondre

3

Yhat vous cherchez est appelé « autocomplete »

vous pouvez le faire vous-même, mais il y a des plugins déjà développés pour vous aider avec ça.

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

Vous auriez besoin encore coder la requête pour obtenir la liste des utilisateurs sur le côté serveur.

Hope this helps

+0

Il ' Il convient de noter que les données seront générées avec PHP/PDO, json_encoded, et envoyées au navigateur quand il demandera une liste d'utilisateurs à compléter automatiquement. –

0
  1. Faire une requête pour renvoyer un tableau des utilisateurs.
  2. Ensuite, bouclez les utilisateurs au format HTML et joignez-les aux codes javascript pour la saisie semi-automatique Jquery.

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

boucle Ensuite, le nom d'utilisateur dans les autocompletes jquery tags disponibles

+0

Pourriez-vous être plus précis? Que voulez-vous dire par les utilisateurs de la boucle au format HTML? –

1

Ce code PHP sera utile pour cette bibliothèque Jquery "de 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!"; 
    } 
?> 

et

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

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