Earalia Posté 21 Avril 2006 Posté 21 Avril 2006 (modifié) Bonjour... Je suis face à un drôle de problème... J'étais toute contente que ça marche, et paf... on me signale qu'en fait... non J'explique... -------- J'ai une série de fiche détaillée, contenant diverses infos. Ces fiches sont consultables et modifiables en ligne. Rien d'extraordinaire, tout se fait sur la même page. Vu le nombre de variables, et le fait qu'on puisse enregistrer dans la BDD (MySQL), j'ai opté pour la méthode "POST" -------- En ce moment, pour faciliter la vie à mes visiteurs, je suis en train de développer une liste, avec un rapide résumé de chaque fiche dans un tableau dynamique. Chaque ligne pointe sur la fiche résumée. Et ça marche... avec Firefox... mais pas avec IE Voici le code "simplifié" <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>-</title><script language='JavaScript'><!--function visu_fic(num){ var formulaire = document.getElementById("listfiche"); formulaire.numfic.value = num; formulaire.action = "mafiche.php"; formulaire.method = "POST"; formulaire.submit();}//--></script></head><body> <form name="listfiche" id="listfiche"> <input type="text" value="" name="numfic" size=20 maxlength=20 value="" class="liste"> <a href="java script:;" onclick="visu_fic('1');" class="topictitle">N°</a> </form></body></html> La majorité utilisant encore IE... quelqu'un aurait une solution ? Modifié 21 Avril 2006 par Earalia
Compte supprimé Posté 21 Avril 2006 Posté 21 Avril 2006 heu ? Je ne comprends pas l'utilité du Javascript pour ton problème ?
Earalia Posté 21 Avril 2006 Auteur Posté 21 Avril 2006 (modifié) heu ?Je ne comprends pas l'utilité du Javascript pour ton problème ? <{POST_SNAPBACK}> le javascript me permet de remplir "numfic", la variable attendue en "post" par mon autre page *edit* pour vous faire une meilleure idée... voici la liste (pas encore référencée sur le site... c'est une avant-première ) et la page vers laquelle elle redirige : la fiche le tableau et ses liens sont générés dynamiquement en php/mysql je vous invite à tester sous IE et sous Firefox... c'est très bizarre Modifié 21 Avril 2006 par Earalia
Earalia Posté 21 Avril 2006 Auteur Posté 21 Avril 2006 j'oubliais de préciser... dans la page réelle, il s'agit d'un <input type="hidden"...> j'ai mis "text" dans l'exemple pour une meilleure lisibilité, mais la zone n'est pas saisissable
petit-ourson Posté 21 Avril 2006 Posté 21 Avril 2006 Niveau accessibilité et référencement, ça risque de ne pas être au top.
yep Posté 21 Avril 2006 Posté 21 Avril 2006 complétement d'accord : 1) il faut avoir le Javascript activé pour que cela fonctionne 2) il faut pouvoir cliquer
Earalia Posté 21 Avril 2006 Auteur Posté 21 Avril 2006 (modifié) pourquoi ? et existe t'il une autre solution ? concernant le javascript, je signale qu'il est présent sur le site, et peut gêner la navigation... mais je ne vois pas d'autres méthodes... ceci dit, je suis ouverte aux suggestions (c'est même ce que j'espérais en fait ) Modifié 21 Avril 2006 par Earalia
destroyedlolo Posté 22 Avril 2006 Posté 22 Avril 2006 Un solution plus 'propre' serait de : tout mettre dans une form chaque lien est un submit : ils portent tous le meme nom mais on simplement une valeur differente. Ensuite, un bon coup de CSS devrait formater cet INPUT comme tu le souhaites
Earalia Posté 22 Avril 2006 Auteur Posté 22 Avril 2006 ça ne règle hélas pas le problème... si chaque lien est un submit, je ne peux pas initialiser la variable attendue par la page cible... ou alors, je ne sais pas comment faire
webadev Posté 22 Avril 2006 Posté 22 Avril 2006 Les données de tes variables viennent d'où ? Je pige pas trop ce que tu veux faire. Si tu as un exemple concret cela nous aiderait un peu. Hervé
Earalia Posté 23 Avril 2006 Auteur Posté 23 Avril 2006 Mmmm... C'est pas très compliqué... C'est un peu comme une liste de membre, qui permet, quand on clique sur son nom, de regarder les infos le concernant... Une fois sur ces infos, il est possible (et voulu) qu'on puisse les modifier dans certains cas : la méthode post est donc nécessaire sur la page "info" (sinon, j'utiliserais des paramètres dans l'URL et on en parle plus ) la liste : http://www.ventsombre.net/list_garou.php une fiche vide : http://www.ventsombre.net/fiche_garou.php Vous pouvez même voir ce que c'est sensé faire si vous utilisez Firefox (oui, ça marche !) Mon problème est que IE n'encaisse pas quelque chose... mais quoi ?
webadev Posté 23 Avril 2006 Posté 23 Avril 2006 Ok compris Alors pour ton problème >> le javascript c'est bien joli mais le problème c'est que c'est coté client donc le mecs qui bloque les javascripts ça pue un peu. Y a plusieurs solutions: Un truc tout con... pourquoi veux tu passer tous les paramètres. Cest bien plus simple de récupérer juste lid et de récupérer directement les infos dans la bdd. Tu te crées une fonction qui prend comme paramètre lid, qui se connect a ta bdd, qui récupérer les infos et qui renvoi un tableau avec les infos. Ensuite tu utilises les infos retournées pour remplir les champs de ton formulaire Donc je vais baser mes solutions sur ce principe (tu nenvois que lid) Tu le passes par url pour avoir un truc du style :http://www.ventsombre.net/fiche_garou.php?id=12 Dans ta page fiche_garou.php Tu récupère lID avec un joli $_GET[id] et tu le donne a ta fonction Tu peux créer une liste déroulante avec les nom (par exemple), le name de ta liste est « id » et qui à comme valeur lid, tu mixe cela avec un petit bouton Editer Tu englobe tout cela dans un <form></form> Tu récupère lID avec un joli $_POST[id] et le tour est joué. Tu peux le faire de plein dautres manières : - Case ratio - Case à cocher - ... Tu peux également faire un <form> pour chaque enregistrement et utiliser un bouton pour chaque enregistrement (mais cela va alourdir ta page). Ce n'est que quelque piste, il est 05:33 du mat, mon lit m'appelle... Hervé
Earalia Posté 23 Avril 2006 Auteur Posté 23 Avril 2006 (modifié) Je vais décrire un peu plus le fonctionnement actuel alors... la fiche : on peut saisir l'ID et, comme tu le préconises, aller chercher les infos en bases pour tout remplir => c'est la fonction de recherche Un truc tout con... pourquoi veux tu passer tous les paramètres.Cest bien plus simple de récupérer juste lid et de récupérer directement les infos dans la bdd. Tu te crées une fonction qui prend comme paramètre lid, qui se connect a ta bdd, qui récupérer les infos et qui renvoi un tableau avec les infos. Ensuite tu utilises les infos retournées pour remplir les champs de ton formulaire on est d'accord, c'est bien ce que tu as décrit ici si on a fait une recherche, en saisissant son mot de passe, on modifier ces infos sinon, on remplie la fiche vide une fois remplie ou modifiée, on valide => création et mise à jour Comme on attaque la base en mise à jour, pour plus de sécurité des infos, et aussi pour plus de propreté, j'utilise la méthode POST. Une autre raison toute bête... De tête, il doit y avoir environ 300 infos dans la fiches... Impossible en création/mise à jour de passer ça autrement que par cette méthode... Tu le passes par url pour avoir un truc du style :http://www.ventsombre.net/fiche_garou.php?id=12 Dans ta page fiche_garou.php Tu récupère lID avec un joli $_GET[id] et tu le donne a ta fonction j'aimerais tant... Mais on est obligé de passer par un POST... *edit* je voulais poursuivre avec les propositions sur le POST mais je suis morte : vais me coucher... mais le petit bout de code proposé tout en haut reprend un peu les propositions faites : je renseigne l'ID nécessaire à la fiche et je l'envoie en POST à une autre page -> j'ai ajouté des occurences et mis l'adresse cible. Le code est correct est fonctionnera sous Firefox. Une petite page "Test.htm "chez vous avec ce code vous permettra de voir. Testez avec Firefox puis IE et vous comprendrez surement mieux (si ce n'est pas déjà fait) Voici le code "simplifié" <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>-</title><script language='JavaScript'><!--function visu_fic(ID){ var formulaire = document.getElementById("listfiche"); formulaire.numfic.value = ID; formulaire.action = "http://www.ventsombre.net/fiche_garou.php"; formulaire.method = "POST"; formulaire.submit();}//--></script></head><body> <form name="listfiche" id="listfiche"> <input type="hidden" value="" name="numfic" size=20 maxlength=20 value="" class="liste"> <a href="java script:;" onclick="visu_fic('1');" class="topictitle">1</a> <a href="java script:;" onclick="visu_fic('2');" class="topictitle">2</a> <a href="java script:;" onclick="visu_fic('3');" class="topictitle">3</a> </form></body></html> Merci pour ta réponse en tout cas Je commence à croire qu'on va trouver Modifié 23 Avril 2006 par Earalia
Earalia Posté 24 Avril 2006 Auteur Posté 24 Avril 2006 Me revoila Alors, pour le javascript, il n'est pas bloquant sur la page. Elle s'affiche correctement, mais ne permet pas le tri... pas franchement dramatique, pour 0,9% des visiteurs du site... (chiffre Xiti) et qu'ils sont prévenus sur chaque page du site... J'ai testé différentes choses, et rien à faire pour que le lien fonctionne comme je le désirais (ou alors ce n'est pas à ma portée ? ) Je me suis donc penchée sur d'autres solutions, comme le préconisait Hervé (encore merci du temps passé) Tu peux créer une liste déroulante avec les nom (par exemple), le name de ta liste est « id » et qui à comme valeur lid, tu mixe cela avec un petit bouton EditerTu englobe tout cela dans un <form></form> Tu récupère lID avec un joli $_POST[id] et le tour est joué. Tu peux le faire de plein dautres manières : - Case ratio - Case à cocher - ... Tu peux également faire un <form> pour chaque enregistrement et utiliser un bouton pour chaque enregistrement (mais cela va alourdir ta page). Ce n'est que quelque piste, il est 05:33 du mat, mon lit m'appelle... Hervé <{POST_SNAPBACK}> La liste... Vu la quantité d'infos que je veux montrer, ce n'était pas jouable... Les cases ? Pas terrible non plus, j'ai donc opté pour l'option "bouttons" Un <form> englobant déjà le tableau, il n'y a que le bouton, qui remplace le numéro affiché Et avec les boutons ça marche... sous Firefox et IE Merci du temps que vous avez pu passer sur ce problème, et n'hésitez pas à me contacter si vous trouvez la cause de cette énième différence entre navigateur... En tout cas, plus rien ne presse ++ Earalia
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant