-
Salya H. posted a comment for milestone CheckIn / Leave en AJAX 2 years, 10 months ago · View
Exactement ! J’aimerai bcp que la variable ?click_register=true&post=1047 ne passe pas en clair dans l’URL. Que ça traite dans le script et retourne la div où il y’a tous les avatars des inscrits
Okay. Donc l’idée est d’appeler en AJAX un script, disons checkin.ajax.php qui prenne deux paramètres (en POST, c’est mieux) :
- Le type (register ou unregister)
- I’ID de l’event
Ce script réalise donc l’action demandée (inscription ou desinscription).
Après, pour l’affichage, tu as deux possibilités :
- Soit tu recharges toute la page, en JS, une fois que le script AJAX a été exécuté.
- Soit tu réinjectes le code HTML dans la div qui sera modifiée.
Je te conseille de recharger la page en JS. Comme ça, tu auras les paramètres invisibles dans l’URL et tu te compliqueras moins la vie avec le template.
Justement j’ai déjà un fichier inscription_event.php avec dedans (+traitement de l’info) ::
$click_register = $_GET['click_register'];
$click_unregister = $_GET['click_unregister'];
$postid_clicked = $_GET['post'];
Ce que je ne comprend pas c’est quoi marquer sur mon bouton ”Se connecter” pour qu’il envois à mon fichier les valeurs TYPE et ID de façon transparente. Et que mettre dans mon php pour qu’il puisse les récupérer et les utiliser ??
Ca se passe donc dans ton JS (jQuery nespa).Tu vas avoir besoin de récupérer l’ID de l’event dans une variable JS :
$(’#id_du_bouton’).click(function() {
$.ajax({
type: ”POST”,
url: AJAX_PATH + ”inscription_event.php”,
data: { click_register: ”register”, postid_clicked: tonID },
success: function() {
location.reload();
});
});
Je suis plus sûr du location.reload(), mais c’est l’idée
La difficulté est de récupérer l’ID en JS. Tu peux par exemple le placer dans un attribut quelconque du bouton (et du coup y accéder en faisant $(this).attr(’tonattribut’) dans la fonction click, ou le mettre dans un input hidden quelque part…
Outch désolé pour la mise en page, on fera un friendpaste la prochaine fois
Merci bcp pour cet exemple concret ! Je vais pouvoir essayer ça dans la journée et me pencher sur 2-3 tutos pour mieux comprendre =)
Pas de problème

Pour mieux comprendre :
- Lors du clic, une requête AJAX est envoyée à inscription_event.php, en passant (en POST hein) les paramètres stockés dans la variable data
- Lorsque le script envoi sa réponse (et qu’elle est positive), la fonction success est appelée. Success peut prendre un paramètre (success:function(html)), et ce que inscription_event.php aura retourné (c’est à dire tout ce qu’il a affiché, echo ou erreurs) se trouvera dans cette variable html.
Firebug t’aidera à y voir plus clair
Bon courage !