Controle sans effacement

Eléphant du PHP | 424 Messages

11 nov. 2006, 16:26

Bonjour,

Je contrôle un champ de mon formulaire mais le probleme c'est que le clik sur le bouton qui effectue ce controle m'efface tout le formulaire... comment garder les informations saisies avant ce clik ?

Voici le script :

 <script language="JavaScript">
function verif_pass() {
type1 = document.formulaire.type.value;
type2 = document.formulaire.type1.value;
if ( type1 == type2 ) {
window.alert('Le client posséde deja une adresse courrier');
return false;
}
else {
formulaire.submit();
return true;
}
}
</script> 
Merci pour votre aide
Youpi Youpi Yo !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 nov. 2006, 12:34

Ta fonction ne supprimant en rien les données de ton formulaire, n'aurais-tu pas déclaré ton bouton comme étant de type "reset" au lieu de "button" ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 424 Messages

13 nov. 2006, 17:21

Je suis reparti sur une autre méthode mais cela pose un autre probleme :
<script type="text/javascript">
function verify()
{
if (document.getElementById('type').value ==  document.getElementById('type1').value) 
document.getElementById('type').value = '';
alert('Le client posséde déja une adresse courrier.');
}

</script>
Le probleme c'est que type est une liste déroulante, du coup quoi que l'utilisateur saisisse dans la liste l'alerte est déclenchée.
Pourquoi ? merci pour votre aide
Youpi Youpi Yo !

Eléphant du PHP | 312 Messages

13 nov. 2006, 18:35

Il faudrait que tu nous donnes la partie où il y a le code de ton formulaire pour qu'il soit plus facile de trouver le problème.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 nov. 2006, 18:46

C'est parce que tu n'indentes pas correctement ton code que tu ne vois pas le problème et donc la solution... Comme ceci, ce qui te manque pour executer l'alerte seulement si les deux valeurs sont égales devrait être plus clair :
<script type="text/javascript"> 
function verify() { 

  if (document.getElementById('type').value ==  document.getElementById('type1').value)  
    document.getElementById('type').value = ''; 

  alert('Le client posséde déja une adresse courrier.'); 

} 
</script>
:)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 424 Messages

14 nov. 2006, 09:49

Non toujours pas bon !

L'alerte se déclenche... :cry:

Je vous indiques le début de mon formulaire :



Si vous avez une idée je suis preneur.. merci d'avance
<form action="ajout_adresse_action.php"  method="post" name="formulaire" id="formulaire">
  <table width="535" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>Type adresse </td>
      <td><select name="type" class="saisiederoule" id="type" onChange="verify()">
        <option value="" selected="selected">Aucun</option>
        <? 
						$sqldip = 'select * from tb_type_adresse order by ordre';
   // $nbsql += 1;
	if ($resselectdip = mysql_query($sqldip)) {
         while ($selectdip = mysql_fetch_array($resselectdip))
         {

		print '<option value="'.$selectdip["id"].'"'.$temp.'>'.$selectdip["type"].'</option>';
                                 
         }
    }
?>
      </select>
Youpi Youpi Yo !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 nov. 2006, 12:40

Le code que j'ai donné n'était rien de plus que le tiens mis en forme... bien sur que l'alerte se déclenche toujours, puisqu'elle n'est pas conditionnée par le if(), comme tu peux le voir avec une indentation correcte :)

Si tu veux que ton if() porte sur plusieurs instructions il faut utiliser des accolades pour définir lesquelles :
<script type="text/javascript">  
function verify() {  

  if (document.getElementById('type').value ==  document.getElementById('type1').value) {  
    document.getElementById('type').value = '';  
    alert('Le client posséde déja une adresse courrier.');  
  }

}  
</script>
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...