Page 1 sur 2

conseil ?

Posté : 17 mai 2005, 09:51
par donny
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

Posté : 17 mai 2005, 10:02
par Cyrano
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.

Posté : 17 mai 2005, 10:03
par zeus
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
  }
}
?>

Posté : 17 mai 2005, 10:09
par pjl
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 ?

Posté : 17 mai 2005, 10:34
par donny
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> 

Posté : 18 mai 2005, 08:44
par donny
je suis obliger de passer par 2 bouton alors

Posté : 18 mai 2005, 09:19
par Hywan
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é :)

Posté : 18 mai 2005, 09:27
par zeus
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'

Posté : 18 mai 2005, 09:31
par donny
je suis obligé de faire un bouton effacer<input type=reset..>
et ensuite un autre bouton <input type=submit ..>

Posté : 18 mai 2005, 09:35
par zeus
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

Posté : 18 mai 2005, 09:35
par Cyrano
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.

Posté : 18 mai 2005, 09:44
par Hywan
alors comment faire au final ? :oops:

Posté : 18 mai 2005, 09:47
par Cyrano
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.

Posté : 18 mai 2005, 09:47
par zeus
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

Posté : 18 mai 2005, 09:50
par donny
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 ???