FORM input image valeur non renvoyé par IE

Monkey Monk -  
 jakjon -
Bonjour,
j'ai fait un formulaire (melange de php et javascript) avec 2 bouton image (input type=image) qui ont 2 valeur différente (l'un true l'autre false)... mon problème réside dans le fait que l'envoi des valeurs appropriées à ces boutons ne fonctionne pas avec Internet Explorer (IE ne gère pas les onClick), pouvez-vous m'aider ?
script php d'affichage formulaire >>

echo '<p><form method="post" name="newsletter" action="">';
echo ' <input style="width:250; height:15; border:0; background-color:#006633; color:#ffffff; font-size:9;" name="mail" maxlength="50" value="Entrez votre e-mail..." onfocus="value=\'\';" size=20>';
echo '<br /><br />';
echo ' <input style="boder:0;" type="image" name="flag" value="true" onClick=javascript:"window.loaction=\'index.php?act='.$_GET['act'].'&lg='.$_GET['lg'].'\'" src="_tools/inscrire.gif" />';
echo ' <input style="boder:0;" type="image" name="flag" value="false" onClick="javascript:window.loaction=\'index.php?act='.$_GET['act'].'&lg='.$_GET['lg'].'\'" src="_tools/desinscrire.gif" />';

le problème qu'avec IE la variable flag n'est pas renvoyée...

Une solution ?

Je pense qu'il me faudrait soit un moyen d'envoyé cette variable pour que mon script php la récupère soit la "captée" (?)

Merci !
Configuration: Windows XP
Firefox 2.0.0.7
Internet Explorer 6.0

5 réponses

  1. Mathieu C.
     
    Bonjour,

    Plus simple et fonctionne avec tous les navigateurs :
    Passage de la valeur par le nom et toujours par POST en ajoutant à la fin du nom la valeur entre 2 caractères spéciaux.

    HTML => Exemple de plusieurs input image pour aligner du texte :
    <input type="image" name="Align_left_" value="left" src="left.gif">
    <input type="image" name="Align_center_" value="center" src="center.gif">
    <input type="image" name="Align_right_" value="right" src="right.gif">


    PHP => Récupération de "value" du input envoyé (recherche par expression régulière "preg_match") :
    if(preg_match("'(.*)(?P<PostName>Align)(?P<Delimiter1>[_]{1})(?P<Value>[^_]*)(?P<Delimiter2>[_]{1})(.*)'i",implode(array_keys($_POST)),$Post)){
    	$InputValue=$Post["Value"];
    }


    Ne reste plus qu'à utiliser "$InputValue" comme si c'était "$_POST["Align"]" !

    Amusez-vous bien avec vos boutons persos !
    Mathieu.
    3
    1. pecunia Messages postés 4 Statut Membre
       
      Parfait !

      Cela répond exactement à mon problème et avec très peu de modifications de code.
      0
    2. jakjon
       
      Merci beaucoup,
      ça marche parfaitement .
      0
  2. Monkey Monk
     
    Bon... j'ai trouver une solution... le bidouillage de bouton.
    C'est pas la plus fière... mais ça marche !
    Pour ceux que ça intéresse, j'explique :

    J'ai flancher et utiliser des input type=submit (au lieu des type=image) et je leurs ai fait une jolie feuille de style ^^ (css) !
    Voilà le code now... :

    echo '<p><form method="post" name="newsletter" action="index.php?act='.$_GET['act'].'&lg='.$_GET['lg'].'">';
    echo ' <input style="width:250; height:15; border:0; background-color:#006633; color:#ffffff; font-size:9;" name="mail" maxlength="50" value="Entrez votre e-mail..." onfocus="value=\'\';" size=20>';
    echo '<br /><br />';
    echo ' <input type="submit" class="boutonins" name="flag" value="true" />';
    echo ' <input type="submit" class="boutondesins" name="flag" value="false" />';

    .. en temps normal j'aurais 2 boutons, moches, avec ecrit "false" et "true" ^^ mais avec css :

    input.boutonins {
    border:1px solid #e3bc06;
    background-image:url(inscrire.gif);
    height:16px;
    width:69px;
    font-family:Verdana;
    font-size:0px;
    font-weight:bold;
    color:white;
    cursor:pointer;
    }
    input.boutonins:hover {
    border:1px inset #e3bc06;
    font-weight:bold;
    color:white;
    }
    input.boutondesins {
    border:1px solid #e3bc06;
    background-image:url(desinscrire.gif);
    height:16px;
    width:96px;
    font-family:Verdana;
    font-size:0px;
    font-weight:bold;
    color:white;
    cursor:pointer;
    }
    input.boutondesins:hover {
    border:1px inset #e3bc06;
    font-weight:bold;
    color:white;
    }

    ...avec css, disais-je, je met le texte du bouton à 0px et remplace le background par mon image (mon bouton rien qu'à moi ^^)...
    Notez que j'ai utilisé du blanc pour le texte car 1.IE gardait une trace minuscule du "true" et "false"... et 2.c'est la couleur située au centre de mes boutons ! (=D)

    Camouflage oui ! Mais résultat satisfaisant pour le moment... jusqu'à ce que je trouve une meilleure solution qui allie esthétique et efficacité !

    A propos d'éfficacité... si qqun peu me dire si je peu optimisé ma css ...ça serai cool ! Et sur ce, je vais me coucher !

    Merci !

    That's all falks ! ^^
    2
  3. alain42
     
    Salut,

    Tu epux passer en parametre dans l'url index>php?............&flag=
    0
  4. Monkey Monk
     
    Bonjour,
    oui mais le but c'est aussi d'éviter cette solution ^^... merci quand même !
    Sinon, là je planche sur le css des boutons (input type=submit class=btn) ...mais bon c'est loin de mes images d'origines !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question