par
eLman » 14 janv. 2009, 10:16
Bonjour,
J'ai déjà expliqué mon problème une première fois, mais je pense pas très clairement et peut être dans la mauvaise rubrique.
Je l'a refais donc en couleur et FULL HD
J'utilise pour mes formulaires une vérification des champs côté client en javascript. Pour ceci j'utilise les label dans mes formulaires HTML.
Voici l'un de mes formulaires :
Code : Tout sélectionner
<form name="formdepot" <?php if(array_key_exists('add',$_GET)){ ?> ACTION="../include/admin/valider.php?type=depot&methode=add"<?php } ?><?php if(array_key_exists('edit',$_GET)){ ?> ACTION="../include/admin/valider.php?type=depot&methode=edit&iddepot=<?php echo''.$iddepot.'';?>"<?php } ?> METHOD=post onSubmit="return validateFormDepot(this);">
<fieldset><legend align=top> Informations sur le dépôt </legend><br>
<table BORDER=0 cellpadding="2" cellspacing="2">
<tr>
<label id="label_lieu"><td>* Lieu du dépôt</td></label>
<TD><INPUT type=text size=30 title="Le lieu du dépôt" name="lieu" <?php if(array_key_exists('edit',$_GET)) {?> value= "<?php echo''.$lieu.''; ?>" <?php } ?> ></TD>
</tr>
<tr>
<label id="label_typedepot"><td>* Type du dépôt</td></label>
<TD><INPUT type=text size=30 title="Le type du dépôt" name="typedepot" <?php if(array_key_exists('edit',$_GET)) {?> value= "<?php echo''.$type.''; ?>" <?php } ?> ></TD>
</tr>
<TR>
<label id="label_adr"><td valign=top>Adresse du dépôt</td></label>
<TD><textarea name="adr" cols="40" rows="4" title="L'adresse du dépôt"><?php if(array_key_exists('edit',$_GET)) {?><?php echo''.$adr.''; ?> <?php } ?></textarea></TD>
</tr>
</table>
<p>(*) : Champs obligatoires</p>
</fieldset>
<br><INPUT TYPE=reset NAME=Bouton VALUE=" Annuler " onclick="history.back()"><INPUT type="submit" value=" Valider ">
</form>
Et voici mon système de vérification en javascript qui affiche une alert à chaque fois qu'un champ n'est pas remplie correctement.
Code : Tout sélectionner
function isNotEmpty(data)
{
if (!data.value.match(/.+/)) return data.title + " est obligatoire";
return false;
}
function isString(data)
{
if (data.value.match(/\d+/)) return data.title + " n'est pas alphabetique";
return false;
}
function showError(data, ErrorMsg)
{
if (ErrorMsg){
//document.getElementById('label_'+data.name).innerHTML = ErrorMsg; //message d'erreur
alert(ErrorMsg);
data.focus(); //pointer l'objet à erreur
return true;
}
else {
document.getElementById('label_'+data.name).innerHTML = ''; //vider l'ex message d'erreur
return false;
}
}
Code : Tout sélectionner
//Vérification du formulaire d'ajout d'un dépôt
function validateFormDepot(form)
{
if (
!showError(form.lieu, isNotEmpty(form.lieu))
&&
!showError(form.typedepot, isNotEmpty(form.typedepot))
)
{
return true;
}
return false;
}
Comme vous le constatez, seuls mes deux premiers champs sont obligatoires.
Sous FF, si je ne remplie pas le premier champ il me fait une alerte, et pareil pour le second champ.
En revanche avec IE7, il me fait bien une alerte si je ne remplie pas le premier champ, mais il ne m'en fait pas pour le second !!
Et c'est comme cela avec tous mes autres formulaires, il vérifie et m'affiche bien une alerte pour les premiers champs de chaque formulaires mais pas pour les suivants ! Alors que FF le fait très bien !
A mon avis il y a un soucis dans la déclaration de mes labels ...
Aidez moi siouplaittttt xD
Merci.
EDIT :
Code : Tout sélectionner
<!-- Formulaire d'ajout ou de modification -->
<form name="formdepot" <?php if(array_key_exists('add',$_GET)){ ?> ACTION="../include/admin/valider.php?type=depot&methode=add"<?php } ?><?php if(array_key_exists('edit',$_GET)){ ?> ACTION="../include/admin/valider.php?type=depot&methode=edit&iddepot=<?php echo''.$iddepot.'';?>"<?php } ?> METHOD=post onSubmit="return validateFormDepot(this);">
<fieldset><legend align=top> Informations sur le dépôt </legend><br>
<table BORDER=0 cellpadding="2" cellspacing="2">
<tr>
<td>* Lieu du dépôt</td>
<TD><INPUT type=text size=30 title="Le lieu du dépôt" name="lieu" <?php if(array_key_exists('edit',$_GET)) {?> value= "<?php echo''.$lieu.''; ?>" <?php } ?> ><label id="label_lieu"></label></TD>
</tr>
<tr>
<td>* Type du dépôt</td>
<TD><INPUT type=text size=30 title="Le type du dépôt" name="typedepot" <?php if(array_key_exists('edit',$_GET)) {?> value= "<?php echo''.$type.''; ?>" <?php } ?> ><label id="label_typedepot"></label></TD>
</tr>
<TR>
<td valign=top>Adresse du dépôt</td>
<TD><textarea name="adr" cols="40" rows="4" title="L'adresse du dépôt"><?php if(array_key_exists('edit',$_GET)) {?><?php echo''.$adr.''; ?> <?php } ?></textarea><label id="label_adr"></label></TD>
</tr>
</table>
<p>(*) : Champs obligatoires</p>
</fieldset>
<br><INPUT TYPE=reset NAME=Bouton VALUE=" Annuler " onclick="history.back()"><INPUT type="submit" value=" Valider ">
</form>
Avec les labels à la fin ça fonctionne !!!
Comment ça se fait ?!
Bonjour,
J'ai déjà expliqué mon problème une première fois, mais je pense pas très clairement et peut être dans la mauvaise rubrique.
Je l'a refais donc en couleur et FULL HD :D
J'utilise pour mes formulaires une vérification des champs côté client en javascript. Pour ceci j'utilise les label dans mes formulaires HTML.
Voici l'un de mes formulaires :
[code]
<form name="formdepot" <?php if(array_key_exists('add',$_GET)){ ?> ACTION="../include/admin/valider.php?type=depot&methode=add"<?php } ?><?php if(array_key_exists('edit',$_GET)){ ?> ACTION="../include/admin/valider.php?type=depot&methode=edit&iddepot=<?php echo''.$iddepot.'';?>"<?php } ?> METHOD=post onSubmit="return validateFormDepot(this);">
<fieldset><legend align=top> Informations sur le dépôt </legend><br>
<table BORDER=0 cellpadding="2" cellspacing="2">
<tr>
<label id="label_lieu"><td>* Lieu du dépôt</td></label>
<TD><INPUT type=text size=30 title="Le lieu du dépôt" name="lieu" <?php if(array_key_exists('edit',$_GET)) {?> value= "<?php echo''.$lieu.''; ?>" <?php } ?> ></TD>
</tr>
<tr>
<label id="label_typedepot"><td>* Type du dépôt</td></label>
<TD><INPUT type=text size=30 title="Le type du dépôt" name="typedepot" <?php if(array_key_exists('edit',$_GET)) {?> value= "<?php echo''.$type.''; ?>" <?php } ?> ></TD>
</tr>
<TR>
<label id="label_adr"><td valign=top>Adresse du dépôt</td></label>
<TD><textarea name="adr" cols="40" rows="4" title="L'adresse du dépôt"><?php if(array_key_exists('edit',$_GET)) {?><?php echo''.$adr.''; ?> <?php } ?></textarea></TD>
</tr>
</table>
<p>(*) : Champs obligatoires</p>
</fieldset>
<br><INPUT TYPE=reset NAME=Bouton VALUE=" Annuler " onclick="history.back()"><INPUT type="submit" value=" Valider ">
</form>
[/code]
Et voici mon système de vérification en javascript qui affiche une alert à chaque fois qu'un champ n'est pas remplie correctement.
[code]
function isNotEmpty(data)
{
if (!data.value.match(/.+/)) return data.title + " est obligatoire";
return false;
}
function isString(data)
{
if (data.value.match(/\d+/)) return data.title + " n'est pas alphabetique";
return false;
}
function showError(data, ErrorMsg)
{
if (ErrorMsg){
//document.getElementById('label_'+data.name).innerHTML = ErrorMsg; //message d'erreur
alert(ErrorMsg);
data.focus(); //pointer l'objet à erreur
return true;
}
else {
document.getElementById('label_'+data.name).innerHTML = ''; //vider l'ex message d'erreur
return false;
}
}
[/code]
[code]
//Vérification du formulaire d'ajout d'un dépôt
function validateFormDepot(form)
{
if (
!showError(form.lieu, isNotEmpty(form.lieu))
&&
!showError(form.typedepot, isNotEmpty(form.typedepot))
)
{
return true;
}
return false;
}
[/code]
Comme vous le constatez, seuls mes deux premiers champs sont obligatoires.
Sous FF, si je ne remplie pas le premier champ il me fait une alerte, et pareil pour le second champ.
En revanche avec IE7, il me fait bien une alerte si je ne remplie pas le premier champ, mais il ne m'en fait pas pour le second !!
Et c'est comme cela avec tous mes autres formulaires, il vérifie et m'affiche bien une alerte pour les premiers champs de chaque formulaires mais pas pour les suivants ! Alors que FF le fait très bien !
A mon avis il y a un soucis dans la déclaration de mes labels ...
Aidez moi siouplaittttt xD
Merci.
EDIT :
[code]
<!-- Formulaire d'ajout ou de modification -->
<form name="formdepot" <?php if(array_key_exists('add',$_GET)){ ?> ACTION="../include/admin/valider.php?type=depot&methode=add"<?php } ?><?php if(array_key_exists('edit',$_GET)){ ?> ACTION="../include/admin/valider.php?type=depot&methode=edit&iddepot=<?php echo''.$iddepot.'';?>"<?php } ?> METHOD=post onSubmit="return validateFormDepot(this);">
<fieldset><legend align=top> Informations sur le dépôt </legend><br>
<table BORDER=0 cellpadding="2" cellspacing="2">
<tr>
<td>* Lieu du dépôt</td>
<TD><INPUT type=text size=30 title="Le lieu du dépôt" name="lieu" <?php if(array_key_exists('edit',$_GET)) {?> value= "<?php echo''.$lieu.''; ?>" <?php } ?> ><label id="label_lieu"></label></TD>
</tr>
<tr>
<td>* Type du dépôt</td>
<TD><INPUT type=text size=30 title="Le type du dépôt" name="typedepot" <?php if(array_key_exists('edit',$_GET)) {?> value= "<?php echo''.$type.''; ?>" <?php } ?> ><label id="label_typedepot"></label></TD>
</tr>
<TR>
<td valign=top>Adresse du dépôt</td>
<TD><textarea name="adr" cols="40" rows="4" title="L'adresse du dépôt"><?php if(array_key_exists('edit',$_GET)) {?><?php echo''.$adr.''; ?> <?php } ?></textarea><label id="label_adr"></label></TD>
</tr>
</table>
<p>(*) : Champs obligatoires</p>
</fieldset>
<br><INPUT TYPE=reset NAME=Bouton VALUE=" Annuler " onclick="history.back()"><INPUT type="submit" value=" Valider ">
</form>
[/code]
Avec les labels à la fin ça fonctionne !!!
Comment ça se fait ?!