conseil ?

Eléphant du PHP | 406 Messages

17 mai 2005, 09:51

Salut,


J ai un formulaire avec des liens pour la navigation,un bouton supprimer,un bouton modifier et il me manque à ajouter le bouton nouvel enregistrement et c est la que sa pose probleme.
Si je fais un bouton
<input type="reset" > sa mettrai a blanc mes champs mais je devrais faire un autre bouton pour valider l insertion ?

Et si je ne fais qu un bouton pour valider l insertion, la personne devra mettre les champs à vide toute seule .

Je ne vois pas comment faire ?

Merci

Mammouth du PHP | 19672 Messages

17 mai 2005, 10:02

Le problème est curieux: si tu mets un troisième bouton, j'ai du mal à comprendre ce que tu veux qu'il permette de faire. Tu as un submit qui permet d'enregistrer les données; un bouton reset qui permet de recommencer lla saisie en cours.

Si je devine bien, tu voudrais qu'en cliquant sur un troisième bouton, ça enregistre et que tu puisses en saisir un autre: dans ce cas, tu n'as pas besoin du troisième bouton du tout: le bouton submit suffit et il faut que ton code effectue le rechargement de la page formulaire après l'enregistrement pour présenter à nouveau le formulaire prêt à recevoir une nouvelle saisie.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2005, 10:03

Si la gestion de ton formulaire est en PHP, au chargement, tu peut tester si tu as appuyer sur modifier et générer une variable de session qui va conditionner le traitement :
<?php
if(isset($_POST["modifier"])) {
  $_SESSION["action"] = "modifer";
} else { // clic sur le bouton reset
  $_SESSION["action"] = "nouveau";
}

if(isset($_POST["valider"])) {
  if ($_SESSION["action"] == "modifer") {
    // UPDATE
  } else {
   // INSERT
  }
}
?>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
pjl
ViPHP | 2119 Messages

17 mai 2005, 10:09

Un bouton de type reset, c'est du HTML de base et c'est spécifiquement prévu pour effacer le contenu d'un formulaire.
Je ne vois pas trop ou est le problème, sinon, n'aurais tu pas tendance à confondre bouton et lien ?

Eléphant du PHP | 406 Messages

17 mai 2005, 10:34

le truc c est que mon formulaire au chargement de la page il contient des donnée,et donc a par ajouter 2 autres bouton un pour mettre a blanc et un pour enregister je vois pas trop
<?php 
// on se connecte à MySQL 
$db = mysql_connect('localhost', 'root', ''); 

// on sélectionne la base 
mysql_select_db('conso',$db); 
if(isset($_GET['Modifier'])){ 
$id=@$_GET['t1'];
$marque=@$_GET['t0']; 
$modele=@$_GET['t2']; 
$nom=$_GET['t3'];
$tech=$_GET['t4'];
echo $nom; 
$sql="update objet set marque='".$marque."' ,modele='".$modele."',nom='".$nom."',technologie='".$tech."' where numserie=".$id; 
$result=mysql_query($sql); 
}elseif(isset($_GET['Supprimer'])){
$id=@$_GET['t1'];
$sql="delete from objet where numserie=".$id;
$result=mysql_query($sql); 
} 
?> 

<form action="<? $_SERVER['PHP_SELF'] ?>" method="GET"> 
<? if(!isset($_GET['max'])){ 
$result = mysql_query("SELECT * FROM objet"); 
$max = mysql_num_rows($result) - 1;//la numérotaion commence à 0 
$suivant = 1; 
$precedent = -1; 
$id = 0; 
} 
else { 
$max = intval($_GET['max']); 
$id = intval($_GET['id']); 
$suivant = $id + 1; 
$precedent = $id - 1; 
} 
//$sql = "SELECT * FROM personne LIMIT " . $id . ", 1"; 
//$sql = "SELECT * FROM personne offset " . $id . ", 1"; 
$sql = "SELECT * FROM objet LIMIT 1 OFFSET " . $id; 


$result = mysql_query($sql) or die('erreur'); 
//$result = pg_query($sql) or die('erreur'); 
$row = mysql_fetch_row($result); 
//print_r($row); 
?> 
<table>
<tr>
<input type="hidden" name="t1" value="<?php echo $row[0]; ?>">
<td><i>Marque</i></td><td><input type="text" name="t0" value="<?php echo $row[1]; ?>"></td></tr> 
<td><i>Modele</i></td><td><input type="text" name="t2" value="<?php echo $row[2]; ?>"></td></tr> 
<td><i>Nom</i></td><td><input type="text" name="t3" value="<?php echo $row[3]; ?>"></td></tr> 
<td><i>Technologie</i></td><td><input type="text" name="t4" value="<?php echo $row[4]; ?>"></td></tr>
</table> 
<?php $deb=$max-$max; 
echo "<a href=\"navig.php?max=" . $max . "&id=" . $deb . "\">DEBUT</a>  "; 

if($precedent != -1) 
echo "  <a href=\"navig.php?max=" . $max . "&id=" . $precedent . "\">PRECEDENT</a>  "; 

if($suivant <= $max) 
echo "  <a href=\"navig.php?max=" . $max . "&id=" . $suivant . "\">SUIVANT</a>  "; 

echo "  <a href=\"navig.php?max=" . $max . "&id=" . $max . "\">FIN</a>  "; 
?> 



<br>
<br>
<input type="submit" name="Modifier" value="Modifier" onclick=" return confirm('Vraiment modifier?')"> 
<input type="submit" name="Supprimer" value="Supprimer" onclick=" return confirm('Vraiment supprimer?')">
</form> 

Eléphant du PHP | 406 Messages

18 mai 2005, 08:44

je suis obliger de passer par 2 bouton alors

ViPHP
ViPHP | 4674 Messages

18 mai 2005, 09:19

bonjour :),
et si tu fesais

Code : Tout sélectionner

<input type="button" value="ton bouton" onclick="window.location.href='ton lien';">
ca irait ?

ou sinon tu entoures chaque bouton d'une balise <form> avec une action différente pour chaque, et comme ca chaque boutton seront tous des type="submit"

:wink:

en espérant t'avoir aidé :)
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 09:27

Et comment il récupère les données de ses <input> si il a 4 formulaires ?

Désolé mais ça ne marchera que pour 'effacer' mais pas pour 'enregistrer' et 'modifier'
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 406 Messages

18 mai 2005, 09:31

je suis obligé de faire un bouton effacer<input type=reset..>
et ensuite un autre bouton <input type=submit ..>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 09:35

Si je comprend bien ton problème, tu peut effectivement te satisfaire de 2 boutons :

- RESET
- SUBMIT

¤ au chargement les infos sont chargées
¤ il peut les modifier et les enregistrer
¤ ton bouton RESET doit avoir la valeur "Nouvel enregistrement" et quand l'utilisateur va cliquer sur ce bouton, tout va être néttoyer et tu pourra recommencer un nouvel enregistrement
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

18 mai 2005, 09:35

Et comment il récupère les données de ses <input> si il a 4 formulaires ?

Désolé mais ça ne marchera que pour 'effacer' mais pas pour 'enregistrer' et 'modifier'
On ne peut pas. Quand tu as plusieurs formulaires sur la même page, le clic sur un bouton submit va envoyer des valeurs en post ou en get en provenance du formulaire utilisé, pas des autres.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 4674 Messages

18 mai 2005, 09:44

alors comment faire au final ? :oops:
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 19672 Messages

18 mai 2005, 09:47

chaque formulaire est distinct: imagines une page: tu peux avoir un formulaire d'identification dans un coin: sur unepage catalogue, tu peux aiussi avoir des cases à cocher pour sélectionner un produit. Ce sont deux formulaires différents, mais tu peux ajouter des articles dans ton panier sans t'identifier encore, tout comme tu peux t'identifier sans ajouter d'article: mais tu ne peux pas faire les deux en même temps.

Il faut donc que chaque formulaire ait son but propre et il faut savoir à la base que tu n'en traites qu'un seul à la fois.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 09:47

Et comment il récupère les données de ses <input> si il a 4 formulaires ?

Désolé mais ça ne marchera que pour 'effacer' mais pas pour 'enregistrer' et 'modifier'
On ne peut pas. Quand tu as plusieurs formulaires sur la même page, le clic sur un bouton submit va envoyer des valeurs en post ou en get en provenance du formulaire utilisé, pas des autres.
Je sais bien, c'est pour ça que j'ai posté ce message
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 406 Messages

18 mai 2005, 09:50

le truc c est que je viens de mettre un bouton reset mais il ne se passe rien
est ce que sa viens du faite que j ai deja d autre bouton sur ma page ???