2013-05-13 1 views
0

J'utilise Jquery tag-it pour obtenir une liste de mots-clés à partir d'une chaîne json distante - cela fonctionne très bien.Jquery avec la demande de modification Mod_Rewrite de somefile.php? Q = truc vers/somefile/foo?

Cependant ce que j'ai maintenant une situation où au lieu de jquery « forage vers le bas » que vous tapez son essayer de faire une requête de recherche sur

somefile.php? Q = toto

(foo étant ce que vous venez de saisir. Cela drill-down la liste d'étiquettes pour afficher uniquement ceux avec « foo » en eux.

J'utilise Laravel 4, donc je dois changer fondamentalement les ajax demande pour qu'il fasse /somefile/foo. ay de le faire? J'ai cherché partout comme fou mais ne peux pas trouver une solution.

Pour référence, voici le code tag-it J'ai actuellement:

$("#tags").tagit({ 
    autocomplete: {delay: 0, minLength: 2}, 
    allowSpaces: true, 
    onlyAvailableTags : false, 
    tagSource: function(search, showChoices) 
    { 
     var that = this; 
     $.ajax({ 
      url:  "/admin/keywords/autocomplete", 
      data: { term:search.term }, 
      dataType: "json", 
      success: function(choices) 
      { 
       showChoices(that._subtractArray(choices, that.assignedTags())); 
      } 
     }); 
    } 
}); 

Répondre

0

Ok je pense que je l'ai réussi à travailler ce moi-même par essais et erreurs - cela fonctionne maintenant.

J'ai pincé mon routage Laravel de sorte que le chemin suivant fera un « % A% » requête SQL sur quoi que ce soit jeté à elle:

http://domain.com/admin/keywords/autocomplete/search/{term} 

L'utilisation de ce que j'ai modifié l'appel ajax dans le plugin Tagit à la place, ajoutez simplement l'entrée à la fin de l'URL. Le code final ressemble à ceci:

$("#tags").tagit({ 
    autocomplete: {delay: 0, minLength: 2}, 
    allowSpaces: true, 
    onlyAvailableTags : false, 
    tagSource: function(search, showChoices) 
    { 
     var that = this; 
     $.ajax({ 
      url:  "/admin/keywords/autocomplete/search/" + search.term, 
      // data: { term:search.term }, 
      dataType: "json", 
      success: function(choices) 
      { 
       showChoices(that._subtractArray(choices, that.assignedTags())); 
      } 
     }); 
    } 
}); 

Cela semble fonctionner et est étonnamment rapide. Je sais qu'il y a probablement une meilleure façon de le faire, mais c'est le mieux que je puisse faire pour l'instant.

Questions connexes