J'essaie de créer un nom d'utilisateur avec trigger @ et href pour que le nom d'utilisateur soit lié à leur page de profil. Je viens de créer un script php et cela fonctionne aussi, mais je n'ai pas beaucoup d'expérience avec jQuery, donc mon problème est que je ne sais pas comment ajouter l'URL pour le nom d'utilisateur.Ajouter attr pour AutoSuggest et Trigger @
Je veux que jQuery s'active quand un utilisateur tape @user ..... et quand il montre autosuggest, il doit y avoir un lien, même si vous tapez @user .., comme facebook. ce que je faisais maintenant:
$(function() {
//autocomplete
$("#username").autocomplete({
$("#username").attr('href'),
source: "hassearch.php",
minLength: 1
});
});
Mais ce n'est pas fonctionne tout à fait, si vous pouvez me aider comment cela fonctionne dans la bonne façon avec jQuery, je vous remercie et je peux apprendre beaucoup sur jQuery alors!
Mise à jour: J'ai trouvé un codage jQuery idéal: Implementing jquery UI autocomplete to show suggestions when you type "@" - Mais ma question est maintenant, comment puis-je charger le fichier php pour obtenir les utilisateurs dans la base de données?
Je veux charger le fichier php dans les balises:
var availableTags = [--> to load php file <--];
function split(val) {
return val.split(/@\s*/);
}
function extractLast(term) {
return split(term).pop();
}
$("#tags")
// don't navigate away from the field on tab when selecting an item
.bind("keydown", function(event) {
if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
event.preventDefault();
}
}).autocomplete({
minLength: 0,
source: function(request, response) {
var term = request.term,
results = [];
/* If the user typed an "@": */
if (term.indexOf("@") >= 0) {
term = extractLast(request.term);
/* If they've typed anything after the "@": */
if (term.length > 0) {
results = $.ui.autocomplete.filter(
availableTags, term);
/* Otherwise, tell them to start typing! */
} else {
results = ['Start typing...'];
}
}
/* Call the callback with the results: */
response(results);
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function(event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join("");
return false;
}
});