JeuWeb - Crée ton jeu par navigateur
Un système de news en Ajax - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Un système de news en Ajax (/showthread.php?tid=4386)



Un système de news en Ajax - Reaven - 03-10-2009

Bonjour,

Etant débutant en Ajax, j'essaye de créer un site complet en Ajax. J'ai donc pensé à attaquer un système de news mais en y réfléchissant j'ai quelques questions que j'ai eu envie de poser.

En quoi consiste mon idée ?

J'aimerais concevoir un système de news de sorte que dès que la news est créée, elle s'affiche sur l'index instantanément sans rechargement de la page. A ce niveau je ne vois pas trop de problèmes.
Ensuite via l'administration, on saurait gérer ces news, c'est à dire les supprimer, les éditer et les créer.

Et là ce trouve le problème. J'ai imaginé un tableau qui reprendrait toutes les news en affichant certaines informations comme le titre, le message, la date ainsi que 2 liens (éditer et supprimer).

Mais le problème c'est que l'affichage des liens ce fait par php de cette sorte:
Code PHP :
<?php 
.............
echo
'<table class="news">
<tr>
<td>N°</td>
<td>Titre</td>
<td>Message</td>
<td>Date</td>
<td>Voir</td>
<td>Editer</td>
<td>Supprimer</td>
</tr>'
;

while(
$mysql_data= mysql_fetch_array($mysql_request)){
echo
'<tr>
<td>'
.$nmbre++.'</td>
<td>'
.$mysql_data['titre'].'</td>
<td>'
.$mysql_data['message'].'</td>
<td>'
.date("d/m/Y", $mysql_data['timestamp']).'</td>
<td><a href="#">Editer</a></td>
<td><a href="#">Supprimer</a></td>
</tr>'
;
}

echo
'</table><br/>';
.................

Et justement là est mon gros problème car je ne sais pas comment faire pour que quand on clique sur le lien Editer, le contenu d'une balise soit instantanément remplacé par le formulaire d'édition, reprenant le titre de la news ainsi que son contenu.

C'est le seul problème qui me bloque dans la création de ce script de news en Ajax, alors je m'en retourne vers les membres plus expérimentés pour m'aider svp.

Merci,
Reaven


RE: Un système de news en Ajax - Sephi-Chan - 03-10-2009

Ce dont tu parles s'appelle un in-place editor. Je t'invite à te renseigner là dessus. Smile

Ça consiste simplement à modifier le DOM pour remplacer ton titre par un formulaire contenant un champ de texte qui a ce titre pour valeur. Ce formulaire doit avoir un événement quelconque (onsubmit ou onblur, généralement) qui déclenche une requête (synchrone ou asynchrone, selon que tu souhaite traiter le retour ou non) qui modifie la ressource (en l'occurrence, la news).

J'en profite également pour te dire que faire quoi que ce soit complètement en Ajax doit être l'une des pires choses à faire.
Comme toute bonne chose, Ajax doit être utilisé avec parcimonie.


Sephi-Chan


RE: Un système de news en Ajax - Allwise - 03-10-2009

Ajax c'est bien pour les applications web ( autrement appelées RIA ). C'est bien pour afficher des données qui sont mises à jour fréquemment et dont il existe un besoin de connaître rapidement la dernière version. C'est très pratique aussi pour tout ce qui est administration. Listes déroulantes chainées, formulaire d'inscription avec check de l'intégrité de certaines valeurs en Ajax ( disponibilité d'un email, pseudo, captcha... ) et pour un tas d'autres trucs plus spécifiques.

Mais dans ton cas, je ne suis pas sûr de l'utilité de mettre à jour les news sur ta homepage pour tes utilisateurs.

Pour ton problème rien à ajouter à ce qu'a dit Sephi. Dans ce cas là pour l'affichage du formulaire il n'y a pas d'ajax, juste du javascript.


RE: Un système de news en Ajax - Scrat - 03-10-2009

L'exemple n'est peut être pas judicieux c'est vrai. Mais je pense que si c'est pour se former et faire des tests... pourquoi pas !


RE: Un système de news en Ajax - Reaven - 04-10-2009

@Sephi-Chan: Merci beaucoup pour l'information. Je m'en vais de suite chercher de la doc sur les in-place editor.

@Tout le monde: Merci d'avoir pu m'éclairer sur mon problème Wink.

Cordialement,
Reaven