| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
xperienss WRInaute occasionnel

Inscrit le: 01 Jan 2005 Messages: 225 Localisation: Genève - Suisse
|
Posté le : Dim Déc 17, 2006 11:04 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
On continue avec les scripts AJAX.
Cette fois c'est un exemple de base d'affichage d'une liste de produits avec une naviagtion de page en page...
Le résultat sur cette page (je me suis pas cassé la tète avec la CSS) :
-http://www.compta-online.com/fiche.php
LE SCRIPT
La table :
| Code: |
CREATE TABLE `fiche` (
`id` int(5) NOT NULL auto_increment,
`online` varchar(5) NOT NULL default '0',
`date` date NOT NULL default '0000-00-00',
`titre` varchar(255) NOT NULL default '',
`description` text,
UNIQUE KEY `id` (`id`),
) TYPE=MyISAM AUTO_INCREMENT=1 ;
|
Sur la page fiche.php (cette page va afficher la liste des résultats + une navigation pour recharger en AJAX):
| Code: |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>WRI</title>
</head>
<script type='text/JavaScript'>
var xhr = null;
function getXhr(){
if(window.XMLHttpRequest)xhr = new XMLHttpRequest();
else if(window.ActiveXObject){
try{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}else{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}
// CETTE FONCTION VA PEMETTRE DE NAVIGUER DE PAGE EN PAGE
function ShowPage(start,nb_fiche_page){
getXhr()
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
document.getElementById('page').innerHTML=xhr.responseText; // ON AFFICHERA LES RESULTATS DANS LA DIV ID "page"
}
}
// REQUETE EN GET AVEC EN PARAMETRES :
// LA FICHE AVEC LAQUELLE ON COMMENCE LA LISTE "start"
// LE NOMBRE DE FICHES A AFFICHER PAR PAGE "nb_fiche_page"
xhr.open("GET","fiche-request.php?start="+start+"&nb_fiche_page="+nb_fiche_page,true);
xhr.send(null);
}
</script>
<?php
include "./conf.php";
$nb_fiche_page = 3; // ON CHOISI LE NOMBRE DE FICHES A AFFICHER SUR LA PAGE
echo '<body onLoad="ShowPage(0,'.$nb_fiche_page.')">';
$resultat = mysql_query("select id FROM fiche WHERE online = '1'"); // REQUETE SUR LA BASE
$nbresultat = mysql_num_rows($resultat); // NOMBRE DE RESULTAT SUR LA REQUETE
echo '<b>Les fiches</b> ('.$nbresultat.')<br />
<br />
<div id="page"> <br /><br /><h2>Chargement des données en cours...</h2><br><br><br /><br /><br /></div>';
// AFFICHAGE DE LA NAVIGATION DE PAGE EN PAGE AVEC LA FONCTION "SHOWPAGE"
echo 'Pages: <a href="#" onClick="ShowPage(0,'.$nb_fiche_page.')">1</a> ';
$nb02 = $nbresultat / $nb_fiche_page;
for ($i=1; $i < $nb02; $i++) {
$a = $i + 1;
$b = $i * $nb_fiche_page;
echo '<a href="#" onClick="ShowPage('.$b.','.$nb_fiche_page.')">'.$a .'</a> ';
}
echo '</body>
</html>';
?>
|
Sur la page fiche-request.php :
| Code: |
<?
include "./conf.php";
header('Content-Type: text/html; charset=iso-8859-1');
// ON RECUPER LES VARIABLES
$nb_fiche_page = $_GET['nb_fiche_page'];
$start = $_GET['start'];
echo '<ul>';
$resultat = mysql_query("select id,date,titre,description FROM fiche WHERE online = '1' ORDER BY date DESC, id DESC LIMIT ".$start.",".$nb_fiche_page);
while($ligne = mysql_fetch_array($resultat)){
// ON RECUPERE LES 150 CARACTERES DE LA DESCRIPITON
$description = (strlen($ligne['description']) > 150) ? ereg_replace("(.{150})( .*)$","\\1...", $ligne['description']) : $ligne['description'];
echo "<li>
<a href='affichage-fiche.php?id=". $ligne['id'] ."'><b>". $ligne['titre'] ."</b></a><br/>
".$description."<br/>
</li>";
}
echo '</ul>';
?> |
Pour les applications de ce script, je vous laisse imaginer.
Allez si ce script vous a intéressé, une petite RECO en haut à droite...
Xp |
|
| |
|
 |
STFprod WRInaute passionné

Inscrit le: 14 Jan 2004 Messages: 626 Localisation: Paris
|
Posté le : Dim Déc 17, 2006 11:52 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
simple et pas idiot du tout
c'est recommandé et noté ! |
|
| |
|
 |
xperienss WRInaute occasionnel

Inscrit le: 01 Jan 2005 Messages: 225 Localisation: Genève - Suisse
|
Posté le : Lun Déc 18, 2006 23:46 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
1 seul commentaire !
Ca n'intéresse personne  |
|
| |
|
 |
creation de site Nouveau WRInaute
Inscrit le: 28 Jan 2004 Messages: 24 Localisation: Bretagne
|
Posté le : Mar Déc 19, 2006 11:24 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
Oui, pas mal du tout, sauf que du coup, si tu as 50 pages, ça ne t'en fait plus qu'une seule.
Comment Google gère ça ? |
|
| |
|
 |
yvain Nouveau WRInaute
Inscrit le: 15 Oct 2004 Messages: 23
|
Posté le : Mar Déc 19, 2006 12:21 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
Dans ce cas la, vu que quand tu cliques sur "l'article", ca recharge la page, tu peux toujours faire de l'url rewriting, et avoir une page pour chaque id.
par contre, la question est pas mal si on traite l'apparition de chaque article article en ajax aussi. |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12073 Localisation: Toulouse
|
Posté le : Mar Déc 19, 2006 12:25 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
disons que les gens qui s interressent à l'ajax ont téléchargés scriptaculous, et ils y ont trouvé leur bohneur  |
|
| |
|
 |
OJAL WRInaute passionné

Inscrit le: 10 Avr 2003 Messages: 759 Localisation: LYON (69)
|
Posté le : Mer Déc 20, 2006 22:37 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
Bonsoir,
Je vais encore faire l'avocat du diable... mais très
A quoi sert ce script??? Pourquoi mettre de l'AJAX dans cette application???
Pour moi l'AJAX doit apporter de l'ergonomie et de l'interactivité, mais dans des cas ou le simple PHP ne peut suffir...
Vous en pensez quoi??? |
|
| |
|
 |
scourtaud WRInaute occasionnel

Inscrit le: 12 Aoû 2006 Messages: 242 Localisation: Paris
|
Posté le : Jeu Déc 21, 2006 3:55 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
Pas mal ce petit bout de code...
Ne serait il pas plus sage d'utiliser une fonction de callback pour parser les resultats, permettant ainsi une plus grande souplesse et l'ajout de fonctions supplémentaires?
Quitte à jouer avec AJAX, j'aurai utilisé soit du XML soit du texte avec séparateurs mis en forme par JS à l'arrivée, ainsi tu joues réellement l'économie de BP et la modularité du script puisque ca te permettra de récupérer les produits de différentes manières via un seul script PHP et plusieurs fonctions JS. C'est du détail mais AJAX est la pour rendre les détails fluides et aussi pour gagner beaucoup de BP sur les gros traffics...
L'idée est bonne mais c'est vrai que sans etres un expert en référencement, j'ai l'impression que l'on perds plus que l'on ne gagne...
Dans le cas d'un catalogue, j'ai du resister à mon envie de tout faire en ajax et me limiter aux fonctions d'ajout au panier, calcul du total, ... Ces petites fonctions qui n'interessent pas google mais peuvent couter cher en BP (photos et charte) et apportent le petit effet wow qui peut séduire un client potentiel. On peut aussi s'en servir pour recommander des produits différents après 30 sec passé sur une page.
Ca me semble dommage de tout passer en ajax car c'est soit la mort du référencement soit la mort du webaster qui devra faire une version noscript à chaque fois...
beau travail quand meme...
Amicalement
Sebastien |
|
| |
|
 |
sunflower WRInaute occasionnel

Inscrit le: 05 Jan 2006 Messages: 121 Localisation: France
|
Posté le : Ven Déc 29, 2006 15:18 Sujet du message: [AJAX] Script d'affichage d'une liste |
|
|
Merci pour le bout de script, c'est appréciable de voir que certains cherchent encore à partager
@OJAL : le php peut suffire dans tous les cas mais ergonomiquement, puisque tu en parles, un reload de page c'est ~bôf, autant rester sur la même unité...
@e-kiwi : sciptaculous, GWT, YUI, rico, prototype, dojotoolkit & caetera c'est bien... mais IMHO c'est chasser les mouches à l'explosif, si on veut juste afficher un texte...
Chercher à comprendre par soi-même ça peut se respecter aussi...
Hors la compréhension du mécanisme, ça devrait pouvoir s'utiliser (sans oublier le ref) pour
* ne pas mettre dans une page un contenu qui pourrait jeter le discrédit... (des commentaires non validés par ex.)
* afficher une info sans autre intérêt que pour le visiteur (valider la bonne prise en compte d'une action - passer un vote p.ex)
* faire une page de recherche à petit effet waow (puisque ce sera déja référencé dans le contenu...) avec raffinement de recherche et autres
enfin je dis ça... c'est les idées qui me viennent... Tellement plus facile de dénigrer... |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
|
|