2012-07-02 4 views
0

J'ai écrit ce code ce qu'il fait si l'utilisateur tape le code postal ou le nom de la ville il récupère de la base de données using comme question maintenant le problème est j'ai environ 1260 dossiers avec deux champs l'un est la ville et l'autre est le code postalJquery Autocomplete trop lent

 SELECT code, area FROM post_codes WHERE code LIKE '$q%' or area LIKE '$q%' ORDER BY area LIMIT 4 

j'ai lu beaucoup de questions posées par les utilisateurs et des recherches en ligne aussi bien, mais rien ne fonctionne utilisé retard de requête et .i ont même répertorié ces deux champs dans la base de données ainsi que ses .. obtenir les dossiers trop lent qui est le premier problème maintenant mon deuxième problème est lorsque l'utilisateur est dans ce champ de texte pour la recherche et il appuie sur la tabulation, il peut contourner la recherche et écrire un code invalide, il veut restreindre que voici mon code de référence.

 $("#Postcode").autocomplete("get_codes2.php", { 


     width: 260, 
queryDelay:0, 

    dataType: 'json', 
    parse: function(data) { 
      var array = new Array(); 
      for(var i=0;i<data.length;i++) 
      { 

      array[array.length] = { data: data[i], value: data[i].areacode, result: data[i].areacode}; 

      } 
      return array; 
    }, 

    formatItem: function(row) {      





    return row.areacode; 
    } 






}).result(function(){ 
+0

done .... merci –

+0

Pour les démarrages, vous pouvez essayer de vérifier si l'entrée est un code postal ou non. Je ne sais pas comment ces codes sont là où vous vivez, mais en Norvège, ce sont toujours des chiffres à 4 chiffres, donc pour moi, il serait assez simple de les séparer. Je ne sais pas dans votre situation tho. – OptimusCrime

+0

En tant que nœud secondaire: votre code semble vulnérable aux injections SQL. – jantimon

Répondre

1

Je pense que Drupal's API search a une approche vraiment agréable de résoudre ce problème. Leur alternative à laisser chaque recherche incrémentale frapper le backend est de servir un grand JSON file, qui est utilisé pour la saisie semi-automatique du côté client. Dans leur implémentation, ils écoutent sur l'événement de focus pour l'entrée de recherche, pour récupérer le JSON uniquement quand c'est réellement nécessaire.

+0

mais je dois écrire du code pour chercher comme MYSQL requête SQL –

+0

Pourquoi? Cette approche contournerait complètement cette exigence. Au lieu de cela, vous exécuteriez 'SELECT code, zone FROM post_codes', servez-le comme un gros fichier JSON et ensuite faites le côté client correspondant. jQuery Autocomplete intègre un support pour l'utilisation de données locales pour cela. –

+0

ok malade voir s'il y a une différence merci –