mettre à jour le contenu d'une partie de la page ... [AchTeuMeuLeu] - Programmation
Marsh Posté le 21-08-2001 à 15:45:51
avec un script serveur comme php ou asp (ou jsp pour froisser personne)
sinon faut utiliser des layer, mais ca va être TREEEEEEEES lourd
Marsh Posté le 21-08-2001 à 16:38:07
C'est pas tres lourd, c'est tres simple, et plus rapide qu'un aller-retour vers le serveur, puisque entierement cote client:
Tu mets la partie que tu souhaites modifier dans un DIV :
<DIV ID="toto">blablabla</DIV>
Ensuite, tu peux remplacer quand tu veux le contenu de ton DIV par la commande JavaScript :
document.all["toto"].innerHTML="<p>mon nouveau blablabla</p>";
et zou !
(pour Netscape je me rappelle plus la syntaxe exacte, mais la complexité est la même)
PS : C'est pour ca que j'aime pas PHP, ca ramollit le cerveau de ceux qui l'utilisent, ils ne jurent plus que par ca meme quand y'a une soluce plus simple
[edtdd]--Message édité par Gonzoide--[/edtdd]
Marsh Posté le 21-08-2001 à 16:50:50
Et t'appelle pas ca lourd? au lieu de charger le texte pour un page il va charger en une fois le texte pour x pages, x étant le nombre de liens qu'il a dans son menu...
ca va, ton cerveau ne se répand pas sur le sol?
Marsh Posté le 21-08-2001 à 16:57:05
plus simple encore tu modifie le contenu de tes layers en y chargeant un fichier HTML qui vient du serveur... essaie les dynapi 2.54 que tu trouvera sur sourceforge.net, c'est terrible.
Marsh Posté le 21-08-2001 à 17:11:59
Je vois pas l'intérêt de faire des chipotages !!
Tu cliques sur un lien, t'affiche une nouvelle page, voilà. Quelle soit statique ou dynamique, ça n'a pas d'incidence.
Les innerHTML c'est bien pour les petites choses, pas pour des pages entières !!!
En plus c'est compatible avec tous les browsers.
Marsh Posté le 23-08-2001 à 08:04:16
Merci à tous pour vos réponses, mais je crois que je dois préciser un peu mon problème.
Tout d'abord, il fo que cela marche sous Netscape 4.7 + et sous ie 4+ (pas facile, mais fo y arriver)
Ensuite, j'ai fait une page qui contient dans sa partie gauche un menu, en haut de la page un titre et en bas un pied de page.
Il me reste à insérer dans la partie droite de la page le code html correspondant aux différents liens du menu.
Ce que je voudrais c'est trouver un moyen de ne pas faire une page complète par lien; c'est-à-dire que je ne voudrais pas copier/coller tout le code du menu+titre+pied de page sur toutes les pages, mais insérer le code html correspondant à chaque lien au bon endroit (en l'occurence, une cellule de tableau).
Voilà, c pas super clair, mais j'ai pas l'exemple sous la main, désolé
Marsh Posté le 23-08-2001 à 08:39:27
Ben dans le cas de petites modifs, je pense qu'utiliser innerHTML est le plus simple.
Marsh Posté le 23-08-2001 à 09:33:15
oui mais Netscape ne sais même pas ce que c'est innerHTML !!
Marsh Posté le 23-08-2001 à 09:38:58
ben tu as que deux vrai choix, soit tu utilise des frames ce que je ne conseil pas, ou tu utilise des includes comme ca tu a un minimum de code a copier par pages et tu peux mettre ajour ton site rapidement sans avoir a modifer 300 pages pour changer le menu de gauche...
Marsh Posté le 23-08-2001 à 09:43:33
ouais, les includes j'y ai pensé, mais je m'y perds.
mes pages sont en php, comment je peux faire pour modifier la source de l'include quand on clique sur un lien ?
Marsh Posté le 23-08-2001 à 11:14:07
ReplyMarsh Posté le 23-08-2001 à 11:16:59
MiniCooler a écrit a écrit : oui mais Netscape ne sais même pas ce que c'est innerHTML !! |
Dans ce cas tu peux reloader une micro-page HTML avec Layer.src
PS : Moi aussi je fais du web dans ma boîte ... ca me tue de devoir supporter un browser de merde comme Netscape que de toute facon (presque) personne utilise
Marsh Posté le 23-08-2001 à 11:36:39
Je suis d'accord Gonzoide, NS est vraiment chiant avec ses balises à la con.
Pour en revenir à mon problème, tu penses que layer.src serait une bonne solution pour NS et innerHTML pour IE ?
Marsh Posté le 23-08-2001 à 13:56:26
C'est un peu chiant de mixer les deux, puisque tu dois avoir les mises a jour sous forme de strings javascript pour IE et sous forme de fichier HTML pour Netscape. Je dirais : utilise des fichiers HTML dans les deux cas, Layer.src (ou un equivalent) doit exister dans IE
Marsh Posté le 23-08-2001 à 14:22:17
Netscape est loin d'être mort, il représente 15% des utilisateurs internet, et ceux qui ne sont pas sur une plate forme windows sont bien obligés de conserver leur netscape.
En fait je me posais la même question que minicooler.
Je me demande si la meilleure solution consiste à créér un tableau, avec dans la cellule de gauche le menu, et dans la cellule de droite un include avec la page php qui va bien. Et pour changer la page de droite on la passe en parametre dans les menus. Genre :
<?php include('index.php3?page=truc.php3'); ?>
J'ai bon ?
Marsh Posté le 23-08-2001 à 14:37:06
Eucalyptus a écrit a écrit : Netscape est loin d'être mort, il représente 15% des utilisateurs internet, et ceux qui ne sont pas sur une plate forme windows sont bien obligés de conserver leur netscape. |
Personne n'est obligé ... dans ma boite, sur Solaris on utilise IE5 et on n'a vraiment pas a s'en plaindre. (on aurait pu utiliser Netscape sur Windows, mais vu la qualite relative des deux produits le choix a ete vite fait)
En plus, si Netscape arrete les navigateurs faudra vite trouver une alternative ... je suis vraiment pas un fan de microsoft, mais force est de constater qu'au niveau des browsers y'a vraiment pas photo
Marsh Posté le 23-08-2001 à 16:44:53
Moi j'en reste à mon idée : un lien une page. Pour les menus et les pied de page, des includes feront l'affaire (asp, php ou simplement javascript, c'est kifkif).
Et comme je l'ai déjà dit, c'est plus facile à rendre compatible entre les différents browsers.
Marsh Posté le 24-08-2001 à 03:22:32
Efectivement la réponse est ici :
http://www.phpinfo.net/?p=articles&rub=pseudo-frames
Par contre trois questions
1° question
Imaginons que sur un site l'on veut utiliser la technique des speudo-frames avec des include php, on perd tout ce qui concerne les informations sur l'emplacement des images, des liens etc... puisque la page de l'include est considérée au même emplacement que la page qui fait l'include.
Un exemple :
Avant on avait dans la page a.php3
<a href="rep/b.php3">
et dans la page b.php3
<img src"truc.gif">
Et on remplace dans a.php3 par
<?php include('rep/b.php3'); ?>
A considérer que truc.gif se trouve toujours dans le répertoire rep, l'image ne s'affiche plus car elle est cherchée à la racine. Résultat il faut changer toutes les pages pour changer les répertoires.
Comment faire pour eviter d'avoir à se palucher toutes les pages à la main ?
2° question :
Si on veut faire un include d'une application php3 genre forum ou gestionnaire de news, il se pose le probleme que cette application va également vouloir passer des parametres. Or en reprenant la technique des speudo-frame on se retrouve avec notre page qui veut en faire ainsi que l'appli. On se retrouve donc avec des commandes du type :
a.php3?page=b.php3?truc=ok
Donc avec deux ? et donc ca marche pas.
Comment faire pour que cela marche sans à avoir à refaire l'ensemble des applications php3 pour corriger le probleme ?
3° question :
Il est également possible que cette application veuille appeller une autre page que celle précisée dans le fichier a.php3, et donc elle va le faire en dehors de l'include et va sortir de la charte graphique.
J'ai rien compris, ou bien encore une fois il faut tout modifier pour qu'elle fasse ses appels via a.php3 ? Si on prend un forum comme phpBB on peut trouver une bonne centaine de href, location, include, et donc on a toutes les chances de se planter.
Donc si je résume : probleme d'emplacement + probleme de passage de parametres + sortie de la charte graphique à chaque apppel à une nouvelle page = autant tout reprogrammer depuis le début.
J'ai rien compris ou bien j'ignore un truc ?
Marsh Posté le 24-08-2001 à 10:16:29
non non, t'as bien compris. Quand on veux faire des pseudo frame, faut y penser avant. comme a chaque fois qu'on fait un prjet d'ailleurs, faut toujours réfléchir a l'architecture avant de commencer a construire les bases.
Marsh Posté le 24-08-2001 à 12:31:20
bon ben je crois que j'ai ce que je veux.
en tout cas merci pour votre participation
Marsh Posté le 21-08-2001 à 15:35:32
J'ai une page qui contient un menu à gauche et je voudrais que lorsque l'on clique sur un lien de ce menu la partie droite de la fenêtre se mette à jour, bien sûr sans Frame et que ça marche sous IE4 ou + et NS4 ou +.
Merci
---------------
SetiCommander, le setiseur à la chaîne ...