2010-09-16 5 views
0

D'accord, je veux que mes utilisateurs puissent cliquer sur un lien qui leur permettra d'ajouter un film à leur favori.Comment publier des informations sur un serveur lorsqu'un utilisateur clique sur un lien?

Ainsi dans l'exemple que j'ai http://xxx.com/favorite.php?userid=1&movieid=1020

Pour le moment, tout fonctionne bien, il ajoute les valeurs dans la base de données, mais comme il est des films, je ne veux pas la page de recharger, d'où l'utilisation d'Ajax que je suis nouveau à. J'ai travaillé un peu avec les différentes façons de le faire, mais je n'ai jamais réussi.

J'ai reçu beaucoup d'aide plus tôt avec mon problème PHP, et ce serait génial si ça pouvait être pareil maintenant! Fondamentalement, il suffit de cliquer sur l'image préférée (qui est un lien) et lorsque l'action de poster sur la base de données est faite, bien montrer une autre image. J'ai essayé plusieurs méthodes, y compris celles de JSON, mais je sais que la méthode GET peut être vulnérable, mais elle utilise la sécurité de session + donc je suis sûr qu'elle est sûre pour le moment, je peux toujours travailler dessus plus tard . Bien que je voudrais savoir un bon moyen avec un bon exemple, parce que je ne l'ai toujours pas compris.

Grâce aux réponses que tu as reçues! Apprécié.

Edit:

Ou sinon, quelle serait la meilleure façon d'afficher les informations, il est plus facile que? Le meilleur moyen que j'ai trouvé est get, puisque je ne suis pas si avancé dans AJAX/etc

Aussi dans mon fichier préféré.php, les informations sont soumises au serveur, c'est tout le point.

+0

D'où vient cette autre image? – NullUserException

+0

Oh, je n'utilise que de petites icônes 32x32 pour afficher un coeur (pour l'ajouter au favori) et après je vais afficher un pouce en l'air ou quelque chose comme ça. Mais si c'est trop compliqué, ça peut juste être du texte. –

+0

Sidenotes: (1) N'utilisez jamais GET pour la manipulation si vous pouvez l'éviter. La préextraction et les robots sont un fléau. GET pour la récupération/filtrage, POST pour la manipulation (ajouter, mettre à jour, supprimer). (2) Que se passerait-il si j'allais à l'url http://example.com/favorite.php?userid=200&movieid=1020? L'utilisateur 200 obtient-il un favori non invité? – Wrikken

Répondre

1

.post() Vous devez obtenir JQuery et installez-le dans votre application Web (voir leurs documents de démarrage). Dans votre HTML, vous aurez:

<div id="fav_12_345"><a href="javascript:void(null)" id="addfav">Favorite</a> 

Et dans votre javascript:

$("a#addfav").onclick(function(ev) { 
    data_id = $(ev).parent.id(); 
    $.post('someurl', { data_id: data_id }, function(res) { 
     // this bit gets run once the call has been processed on the server 
     if (res) { 
      // update the new image 
      $("img#blah").attr("src", 'someurl'); 
     } 
     }, 'json'); 
}); 

Et dans votre PHP

$data_id = your_sanitise_user_input($_REQUEST['data_id']); 
$data = explode('_', $data_id); 
$sql = "UPDATE table set fav_id=$data[1] where id=$data[0]"; 
$res = your_sql_lib_thing($sql); 
print "{res: '$res'}"; 

Tout ce code est approximatif et syntaxiquement probablement défectueux mais vous donne l'idée générale.

0

Si vous êtes désireux d'obtenir des données, vous pouvez utiliser la méthode .getJSON jQuery http://api.jquery.com/jQuery.getJSON/, ou si vous êtes désireux de publier des données, vous pouvez utiliser la méthode http://api.jquery.com/jQuery.post/

+0

Aussi, si vous voulez juste obtenir le code HTML, vous pouvez utiliser.load() http://api.jquery.com/load/ –

Questions connexes