Web 2.0

g.lebourgeois

Membre actif
30 Décembre 2006
174
4
Villejuif
www.guillaume-lebourgeois.fr
Bonjour à tous,
je me rends compte que je suis en train de louper le fameux virage du web 2.0, et notamment des technologies AJAX. J'ai donc commencer à butiner pour me rensigner et m'autoformer. Mais voilà, il existe déjà de nombreuses bilbiothèques de ce type, et j'aimerais profiter de votre expérience pour savoir vers laquelle me tourner : celle ayant le meilleur rapport de simplicité/efficacité/viabilité/documentation...

Merci pour vos conseils avisés !
 
Bonjour à tous,
je me rends compte que je suis en train de louper le fameux virage du web 2.0, et notamment des technologies AJAX. J'ai donc commencer à butiner pour me rensigner et m'autoformer. Mais voilà, il existe déjà de nombreuses bilbiothèques de ce type, et j'aimerais profiter de votre expérience pour savoir vers laquelle me tourner : celle ayant le meilleur rapport de simplicité/efficacité/viabilité/documentation...

Merci pour vos conseils avisés !
Si tu n'aime pas trop javascript (c'est mon cas), le mieux pour AJAX c'est soit de se mettre à Ruby On Rails qui l'intègre en natif, soit d'utiliser une lib toute faite.

Il y en a de très connue comme scriptaculous, mais c'est encore du javascript.

Ce que j'ai choisi moi c'est xajax (je l'utilise pour mon site : recherche en live, ajout de commentaire...) : très simple à utiliser et à mettre en place, et s'utilise via PHP.
Il y a deux classe, une pour déclarer les fonctions PHP que l'on va utiliser via AJAX, et l'autre à utiliser dans ces fonctions, la doc et le wiki sont très bien foutu.
En plus tu peux facilement ajouter tes propres fonctionnalités (ou utiliser celle de scriptaculous par exemple) avec la méthode addScript() de la classe xajaxResponse, mais tu verra tout ça ;)

c'est par là ---> http://www.xajaxproject.org/

de la lecture par sur Openweb

:zen:
 
La petite library qui monte pour le moment c'est jquery. Très légère. Il y a même un site en français pour les trucs et astuces. :zen:
Tient je ne connaissais pas, ça à l'air très bien foutu. :up:

Mais je vais continuer d'utiliser xajax pour la simplicité d'interaction avec le serveur, d'après ce que je vois sur le site, jQuery est plus orienté présentation (effet etc... un peu comme script.aculo.us).


xajax->addScript + jQuery ça peut donner quelque chose de sympa :)
 
Merci pour le lien !
y'a vraiment un paquet de trucs, difficile de choisir vers quoi se tourner.
xajax pour commencer, ensuite tu ajoute script.aculo.us si tu veux faire des effet graphique, ou alors jQuery (qui manipule super bien l'interaction avec CSS c'est impréssionant), jQuery soit juste pour le graphique soit pour tout, mais c'est un peut plus complexe que xajax.

Ou alors lance toi avec le derinier que je t'ai filé et le lien vers l'articel d'Openweb et fait tout à partir de zéro :)
 
Hello !

J'ai finalement décidé de m'y mettre sérieusement et d'écrire ma propre librairie AJAX pour PHP. Je ne pensais pas y arriver en une seule soirée (il et 21h40 et je m'y suis mis vers 18h, avec une coupure repas de une demi heure), mais en fait si.

Ça fonctionne bien, évidemment ça ne fait que les choses basiques, mais ça les fait bien :D.

Pour l'instant je vous post ça là, puis plus tard (ce week-end je pense), je rédife une doc en français et anglais (j'aurais besoin d'aide pour l'anglais un petit peu :)) puis je fais un site un peu bien et hop ! (c'est open source of course)


Il y a un dossier pAjax (p4bl0's Ajax) qui contient 4 fichiers tout petit et léger :
- pAjax.js -> le javascript nécessaire (50 lignes de code, 1.3Ko)
- pAjax.inc.php -> la librairie PHP avec une seule fonctions simple qui génère le javascript nécessaire (30 lignes de code, 1.2Ko)
- pAjax.php -> le fichier qui est appelé via ajax (15 lignes de code, 0.5Ko)
- pAjax_functions.inc.php -> le fichier par défaut dans lequel les fonctions vont être appeler, c'est modifiable facilement, je vous explique ça plus bas. (vide)

comme vous pouvez le voir, même si il n'y a pas énormément de fonctionnalités (c'est déjà bien suffisant) pAjax est vraiment très peu lourd à charger et ne ralentira pas le chargement d'une page contrairement à certaine librairie bien plus volumineuse !

Alors comment ça marche ?
Dans le fichier dans lequel vous voulez utiliser pAjax, disons index.php, vous faite ceci :
Bloc de code:
<?php include('chemin/vers/pAjax/pAjax.inc.php'); ?>
Ensuite vous cr&#233;ez une variable type tableau (array) en PHP qui contient la liste des fonctions dont vous aurez besoin comme clef, et les arguments de ses fonctions en valeur. par exemple
Bloc de code:
$my_functions = array(
    'afficher_article' => 'article_id',
    'calcul' => 'nombre1, nombre2, operateur',
    'diaporama' => 'nouvelle_image, image_suivante'
);
Ensuite dans la partie <head> de votre page vous g&#233;n&#233;rez le javascript n&#233;cessaire, la fonction prend 3 arguments :
- le premier obligatoire est la liste des fonctions ($my_functions dans notre cas).
- le second et le chemin vers le fichier qui contient ces fonctions (et uniquement ces fonctions, pas d'affichage !!), si il n'est pas pr&#233;cis&#233; alors le fichier par d&#233;faut (pAjax_functions.inc.php) est utilis&#233;. Ce fichier peut aussi &#234;tre un fichier avec des include pour tout vos fichier ou il y a des fonctions Pour le moment au moins, il faut pr&#233;ciser ce fichier en fonctions de l'endroit o&#249; est pAjax.inc.php.
- le troisi&#232;me argument est le chemin vers le dossier pAjax (par d&#233;faut la fonction consid&#232;re que le dossier et au m&#234;me niveau que la page qui l'appelle).

Donc on a par exemple :
Bloc de code:
<?php echo pAjax_gen_js($my_functions, '../includes/functions.inc.php'); ?>

Et c'est bon ! Votre pouvez utiliser ajax sur votre page !!
Ensuite par exemple la fonction afficher_article s'appelle via pAjax via la fonction pAjax_afficher_article().

Toutes les fonctions javascript pAjax_* prennent deux arguments, puis ceux qui sont pr&#233;cis&#233;s dans l'array $my_functions. Ces deux arguments sont :
- element_id qui est l'id de l'&#233;l&#233;ment qui va &#234;tre modifi&#233; par la fonction
- element_attr est l'attribut de l'&#233;l&#233;ment que l'on va modifier (innerHTML, value, src...).

Donc par exemple la fonction pAjax_afficher_article(element_id, element_attr, article_id);
Pourrait &#234;tre utilis&#233; comme &#231;a :
Bloc de code:
<form action="index.php" method="post" onsubmit="return false;" accept-charset="utf-8">
  <p>
    <selec name="select_article" id="select_article">
      <option value="1">Titre de l'article 1</option>
      <option value="2">Titre de l'article 2</option>
      <option value="3">Titre de l'article 3</option>
      <option value="4">Titre de l'article 4</option>
    </select>
    <input type="button" value="Afficher l'article" onclick="pAjax_afficher_article('article_div', 'innerHTML', this.form.select_article.value);" />
  </p>
</form>
<div id="article_div" style="padding:5px; margin:10px; border:1px solid #aaa;">
  <em>S&#233;lectionnez un article puis cliquez sur le bouton "Afficher l'article". Il appara&#238;tra ici, c'est &#231;a la magie d'ajax : pas besoin de recharger toute la page !</em>
</div>

Apr&#232;s il suffit que la fonction PHP afficher_article interroge une base de donn&#233;es MySQL et en fonction du article_id qui lui ai donn&#233; retourne le html d'affichage de l'article.

Par exemple
Bloc de code:
<?php
function afficher_article ($id) {
  if ($conn = @mysql_connect(...)) {
    mysql_select_db(...);
    $article = mysql_fetch_array(mysql_query("SELECT * FROM `articles` WHERE `id`='".$id."';"));
    mysql_close($conn);
    $retour = '<h2>'.$article['title'].'</h2>';
    $retour .= '<p class="article">'.$article['content'].'</p>';
    $retour .= '<p class="info_article">Post&#233; le : '.date('d/m/Y',$article['date']).' par '.$article['author'].'</p>';
    return $retour;
  } else {
    return '<span class="error_sql">Une erreur est survenue lors de la tentative de connexion &#224; la base de donn&#233;es.</span>';
}
?>

:zen:



Je ne sais pas si &#231;a servira &#224; qui que ce soit mais je suis content de moi et je me suis bien amuser &#224; faire ce truc, que je continuerai d'am&#233;liorer :)
D&#232;s que c'est un peu plus pratique (par exemple pour le moment il faut mettre le chemin du fichier qui contient les fonctions en fonctions de l'emplacement de pAjax.inc.php, ce qui n'est pas tr&#232;s joli), je l'utiliserais en lieu et place d'xajax sur mon site :)
 
Les APIs c'est bien, mais connaître -ne serait-ce que pour culture- les bases ne peut pas faire de mal non plus....

Sinon, autour du buzz, y'a YahooUI qu'est sympa.
J'ai d&#233;j&#224; lu cet article wikip&#233;dia ;)

Si j'ai fait &#231;a c'est avant tout pour m'amuser et &#231;a marche alors... :rateau:


Sinon pour YahooUI j'avais regarder il y a quelque temps mais j'avais pas accroch&#233;.
 
@Pablo
Tucherches &#224; combler des d&#233;ficits de fonctionnalit&#233;s dans les bilbio que tu utilises, ou tu t'&#233;clate juste &#224; programmer &#231;a ?
Si tu veux un coup de pouce pour la traduction anglaise, je peux fournir !
Juste a m'&#233;clater, xajax fait d&#233;j&#224; tout &#231;a :D

Merci c'est super le coup de main pour la traduction anglaise, &#231;a sera volontier, mais pas tout de suite, faut d&#233;j&#224; que je fasse un truc bien en fran&#231;ais ;)