2010-09-16 8 views
0

J'ai implémenté une fonction de récupération de données dans php. la vue contient un bouton "thumpsup" et chaque fois que l'utilisateur clique dessus, le db est mis à jour. Je travaille avec le framework zend, donc j'ai un url mypage.de/articles/thumpsup/id/x cette URL pointe vers une acion/fonction spécifique dans mon article conroller, mais cette fonction ne retourne aucune donnée, elle ajoute le thumpup à la base de données. il existe une autre liste de fonctions qui transmet le contenu à la vue.jQuery, DB Mise à jour/affichage Problème

donc je suis à la recherche d'une fonction jquery qui exécute la requête URL mypage.de/articles/thumpsup/id/x Cliquez et exécute ensuite la fonction de liste pour actualiser la vue.

$(document).ready(function() { 
    $("a.tp").click(thumpsUp); 
}); 

function thumpsUp() { 
var url = window.location.hostname + '/articles/thumpsup/id/' 
     + $(this).attr('id'); 
$.post(url, { 
    "format" : "json" 
}, function(data) { 
    .... 
}, 'html'); 
return false; 
} 

donc la fonction thumpsup que je normaly utiliser pour exécuter une URL et mettre à jour la vue ne fonctionne pas ici. des idées comment résoudre cela?

Répondre

1

si vous utilisez $(this) alors vous devez passer à la fonction et vous ne pouvez pas exécuter seulement une fonction, vous avez besoin d'une fonction anonyme ... alors essayez ceci:

$(document).ready(function() { 
    $("a.tp").click(function(){ var myelement = $(this); thumpsUp(myelement); }); 
}); 

function thumpsUp(element) { 
var url = window.location.hostname + '/articles/thumpsup/id/' 
     + element.attr('id'); 
$.post(url, { 
    "format" : "json" 
}, function(data) { 
    .... 
}, 'html'); 
return false; 
} 
+0

avec $ (this) .attr ('id') Je reçois juste l'id article du lien de l'article. mais ce n'était pas mon problème ^^. Je veux savoir comment mettre en œuvre une fonction qui, de la même manière, écrit un thumpup dans la base de données sans retourner aucun contenu –

+0

oh je ne suis pas sûr de comprendre. Si vous venez de renvoyer du texte brut "succès" ou similaire, cela ne fonctionnera-t-il pas? Vous pouvez ignorer 'data'. –

0

Si je comprends vous correctement la fonction "liste" est aussi JavaScript. Si c'est le cas, il suffit de l'appeler depuis la fonction de rappel de votre requête AJAX.

function(data) { $.post(url, { "format" : "json" }, function(data) { list(); }, 'html');

}

Questions connexes