Aller au contenu

Sujets conseillés

Posté (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 :huh:

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é par Earalia
Posté (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é par Earalia
Posté

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

Posté

complétement d'accord :

1) il faut avoir le Javascript activé pour que cela fonctionne

2) il faut pouvoir cliquer

Posté (modifié)

pourquoi ? :blush:

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 :P

(c'est même ce que j'espérais en fait ^^)

Modifié par Earalia
Posté

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 :D

Posté

ç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 :(

Posté

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é

Posté

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 ?

Posté

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é

Posté (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é par Earalia
Posté

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 ? :D )

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 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é

<{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 :wub: 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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...