Aller au contenu

Bouton reset formulaire


Sujets conseillés

Posté

Bonjour, :)

Je voudrais faire un bouton pour remettre à zero les differents champs d'un formulaire.

<input type="reset" value="Remise à zero">

J'ai utilisé ça, mais ça ne marche pas. :huh:

Ca peut être dut au fait que les champs sont remplis par des variables et pas par le visiteur?

Posté

Je crois oui... en fait ca ne vide pas forcément les champs mais les remet dans leur état initial, remplis dans ton cas ;)

Posté

Alors, si je commence à comprendre un peu le php, il faut que je déclanche une fonction lorsque je clique sur ce bouton qui fasse que toute mes variables prennent un valeur "", puiqu'elles ne sont pas vident par défaut.

C'est bien ça?

Posté

Oui mais ca implique de recharger la page :)

Le php s'exécute sur le serveur ne l'oublions pas ;)

Posté

Pour bien faire la différence entre PHP et HTML/javascript je suis tombé sur un site sympa : Le site du Zéro... ne le prend pas mal :) mais ca éclaire bien les néophytes à mon avis.

Posté

Tiens, c'est drôle! J'ai passé la soirée à lire ses tutoriaux!!! :lol:

J'ai essayé d'ecrire cette fonction de remise à zero.

J'ai placé ça sur le bouton:

<input type="reset" value="Remise à zero" onclick=vide()>

Et cette fonction au début de mon code php:

function vide($euros,$francs,$marks)
{
$euros="";
$francs="";
$marks="";
}

Ca ne marche pas!

Voyez vous des erreurs? :huh:

Posté

Je te conseillerais plutôt de faire ça en Javascript. Voci quelques éléments qui pourront te servir...

<form name="formulaire">
<input name="champ">
</input>
</form>

document.formulaire.champ.value='';

Tizel

Posté

Tu peux aussi essayer en php, avec recharchement de la page.

<?php
if ($reset== true)
{
$champ = "";

}
?>



<form name="formulaire" action="<?php echo $PHP_SELF;?>" method="post">
<input name="champ">
<input type="submit" value="Validation">
<input type="submit" name="reset"  value="reset">
</form>

A arranger selon tes désidératas.

xpatval

Posté (modifié)

Je préfererai tout mettre en php.

J'ai essayé:

if ($reset== true)
{
$euros="";
$francs="";
$marks="";
}

avec:

<input type="submit" value="Remise à zero" name="reset"></p>

Ca marche mais ça écrit -o! :o

[édit] c'est bon, il fallait mettre un espace entre le guillemets!

MERCI!!! :up: [/edit]

Modifié par Gribouille26
Posté

En fait, ça ne marche plus pour mon autre bouton submit.

<input type="submit" value="convertir" name="convert">

Il faudrait que je fasse:

if ($convert== true)
{...}

Mais dans ce nouveau if, je devrai y placer plusieurs autres if que je fait déjà!

Comment écrire ça?

Si je place juste mes anciens if dans {...}, ça ne marche pas!

Concrètement, j'ai ça:

<?
if ($reset== true)
{
$euros=" ";
$francs=" ";
$marks=" ";
}
if ($convert== true)
{
if(empty($francs) and empty($marks) and isset($euros))
{
$francs= round(100*$euros*6.559-0.01)/100;
$marks= round(100*$euros*1.955-0.01)/100;
}
if(empty($euros) and empty($marks) and isset($francs))
{
$euros= round(100*$francs/6.559-0.01)/100;
$marks= round(100*$francs/3.3538-0.01)/100;
}
if(empty($euros) and empty($francs) and isset($marks))
{
$euros= round(100*$marks*0.5112-0.01)/100;
$francs= round(100*$marks*3.3538-0.01)/100;
}
}
?>
...
<form method="post" action="convert.php">
<p><input type="text" size="10" name="euros" value="<? echo "$euros";?>"> Euros<br></p>
<p><input type="text" size="10" name="francs" value="<? echo "$francs";?>">  Francs<br></p>
<p><input type="text" size="10" name="marks" value="<? echo "$marks";?>">  Marks<br></p>
<p><input type="submit" value="convertir" name="convert">
<input type="submit" value="Remise à zero" name="reset"></p>
</form>

Voyez-vous une erreur expliquant l'interference entre les deux boutons? :unsure:

(le "convert" ne marche plus depuis que l'autre est devenu type="submit" aussi...)

Posté

Gromo dosso, cela pourrait donner qlque chose comme ça:

if ($reset== true)
{
$euros="";
$francs="";
$marks="";
$convert = 0;
}

switch ($convert)
{
  case 0:
  $convert = 1;
  ?>
  <form method="post"action="<?php echo $PHP_SELF;?>" method="post">
  <p><input type="text" size="10" name="euros" value="<? echo "$euros";?">    Euros<br></p>
  <p><input type="text" size="10" name="francs" value="<? echo "$francs";?>">  Francs<br></p>
  <p><input type="text" size="10" name="marks" value="<? echo "$marks";?>">  Marks<br></p>
  <p><input type="submit" value="convertir" name="convert">
  <input type="submit" value="Remise à zero" name="reset"></p>
  </form>
<?php
  break;

  case 1:
    // tu mets tes conditions
  break;
}

xpatval

Posté

Lorsque $convert vaut 0, tu passes dans le formulaire afin de saisir. Dans ce formulaire, tu valorises $convert à 1.

Lorsque tu soumets, la page se recharge avec, entre autre, la valeur de $convert (1)

Et comme $convert vaut 1, tu ne repasses plus dans le formulaire, mais dans les tests de condition.

Tu peux ainsi continuer comme cel, si tu as d'autres choses à faire.

Dans le case 1: , hormis tes tests, tu valorises $convert à 2, avec un bouton de validation.

Tu recharges ta page, $convert valant deux, tu passeras dans le case2: etc...

xpatval

Posté
Déjà, je ne vois pas quand $convert peut bien valoir 0 ou même 1?

$convert est une variable de positionnement dans ton script.

C'est TOI qui détermine sa valeur, de manière à franchir les différentes étapes que tu souhaites.

C'est toi qui initialise $convert à vide, ou = 0.

C'est TOI qui lui attribue la valeur 1 lorsque tu passes dans la condition où $convert vaut dans un premier temps 0.

C'est Toi qui lui attribue la valeur 2 lorsque tu passes dans la condition où $convert vaut 1 .

Etc...

xpatval

Posté

D'accord, je comprend! (un peu)

Mais ça me paraît bien complexe pour ce que je veux faire...

J'ai essaye comme ça aussi:

<?

if ($bouton==zero) 
{
$euros=" ";
$francs=" ";
$marks=" ";
}

if ($bouton==convertir)
{
if(empty($francs) and empty($marks) and isset($euros))
{
$francs= round(100*$euros*6.55957-0.01)/100;
$marks= round(100*$euros*1.95583-0.01)/100;
}
if(empty($euros) and empty($marks) and isset($francs))
{
$euros= round(100*$francs/6.55957-0.01)/100;
$marks= round(100*$francs/3.353855-0.01)/100;
}
if(empty($euros) and empty($francs) and isset($marks))
{
$euros= round(100*$marks*0.511292-0.01)/100;
$francs= round(100*$marks*3.353855-0.01)/100;
}
}
?>
<form method="post" action="convert.php">
<p><input type="text" size="10" name="euros" value="<? echo "$euros";?>"> Euros<br></p>
<p><input type="text" size="10" name="francs" value="<? echo "$francs";?>">  Francs<br></p>
<p><input type="text" size="10" name="marks" value="<? echo "$marks";?>">  Marks<br></p>
<p><input type="submit" value="convertir" name="bouton">
<input type="submit" value="zero" name="bouton"></p>
</form>

Ca me paraît logique, mais ça marche pas non plus... :(

Posté (modifié)

Tu es sur de la valeur de $bouton ? Tu devrais l'afficher quelque part pour voir quelle valeur ca te sort...

Et met des guillemets ou des cotes $bouton == "convertir"

Modifié par Titag
Posté

Oui en fait c'est la conversion qui ne marche pas...

Essaye en changeant les conditions :

empty($francs) && empty($marks) && isset($euros)

je ne sais pas où tu as vu "and" mais je ne suis pas sur que ca marche ainsi... && marche c'est sur.

Posté

Avant de mettre le bouton pour effacer, j'utilisait AND, et ça marchait très bien!!!

J'ai essayé avec &&: pas de différence... :(

Les conversions marchaient très bien avant, c'est ce bouton qui à mit le bazar et qui a fait que le bouton conversion ne marche plus. Si je l'enleve, ça marche...

Veuillez vous connecter pour commenter

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



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