2012-05-03 4 views
1

J'ai un tableau contenant la liste d'amis d'un utilisateur sur Facebook.Tri et affichage dynamiques du tableau PHP

Je dois afficher cette liste et fournir un champ de texte en haut de la liste pour entrer la première lettre de l'un de ses amis. Lorsque l'utilisateur entre une lettre dans le champ de texte, le programme doit afficher uniquement les noms qui commencent par la lettre entrée, tous les autres noms doivent disparaître.

De plus, les noms doivent être triés par ordre alphabétique.

Comment effectuer cette tâche?

+0

Il y a plusieurs façons, vous pouvez faire tout cela via javascript, ou vous pouvez le faire en utilisant php ... ou les deux .. javascript + php (+ ajax). Dis-nous en plus, qu'avez-vous essayé? – miro

+0

vous voulez dire la saisie semi-automatique? Souhaitez-vous effectuer cela en utilisant ajax? ou purement php? – sree

+0

Ceci est un travail pour REGEX, peu importe la langue que vous utilisez! –

Répondre

1

D'abord, je dois vous demander si vous utilisez javascript ou quoi que ce soit à filtrer ou est-ce seulement du code côté serveur en utilisant php? Mis à part cela, voici les étapes de la façon dont je le ferais juste du côté php.

1) Triez la liste complète de tous les amis de l'utilisateur pour que la totalité de la matrice soit dans l'ordre. Jetez un oeil à ce http://www.php.net/manual/en/function.sort.php.

2) Lorsque l'utilisateur saisit leur seule lettre, il vous suffit simplement devez:

  • Créer un nouveau tableau pour stocker les résultats de la recherche
  • boucle dans votre large éventail de l'utilisateur de tous les amis et insérez les correspondances dans le plus petit tableau
  • Afficher le petit tableau car il sera déjà trié à partir de la liste de départ déjà triée.

    for ($i = 1; $i <= $masterFriendsList.length; $i++) { 
        if (substr($masterFriendsList[i],0,1)==$yourMatchValue){ 
         $filteredArray[]=$masterFriendsList[i]; 
        } 
    } 
    
+1

J'ai essayé ceci. Mais comment extraire des données de ce champ de texte sans le soumettre en tant que formulaire. Au moment où l'utilisateur entre une lettre dans le champ de texte, le programme devrait immédiatement afficher ces noms, sans appuyer sur aucun bouton, etc. Je pense que vous pouvez comprendre mon problème. sinon, s'il vous plaît lire ma question. Merci :) – qurban

+1

Vous pouvez simplement l'envoyer par javascript au serveur en utilisant ajax avec un événement onchange. Lorsque l'utilisateur appuie sur une touche, l'événement onchange doit se déclencher et vous pouvez envoyer les données de champ de texte mises à jour à votre code php. – jeschafe

1

Cependant, vous aurez probablement besoin d'ajax. Sauf si vous ne faites que trier et filtrer la liste du côté client. Il existe déjà une bibliothèque de données tabulaires appelée Datatables qui fera cela pour vous.