Deux boutons submit dans un formulaire :x

Deux boutons submit dans un formulaire :x - PHP - Programmation

Marsh Posté le 17-03-2005 à 18:18:37    

Coucou à tous ;)  
J'ai fait des recherches, je suis tombé par exemple sur cette FAQ, mais je n'arrive pas à résoudre mon problème.
En fait, j'ai un formulaire d'envoi de tutoriaux, qui est un peu comme ça :  
 

Code :
  1. <form method="post" action="<?=$page?>">
  2. <?php
  3.  if ($_GET['edit'])
  4.  {
  5.   $requete = "SELECT * FROM aido_tutos WHERE Id=".$_GET['edit']." AND Auteur='$user'";
  6.   $result = mysql_query($requete, $idConnexion);
  7.   $enreg = mysql_fetch_array($result);
  8.   echo '<input type="hidden" name="id" value="'.$enreg['Id'].'" />';
  9.  }
  10. ?>
  11. <table class="table1">
  12. <tr>
  13.  <td class="table1">Catégorie : </td>
  14.  <td class="table1"><select name="Type">
  15. <?php
  16.  if (!$_GET['edit']) echo "<option>Choisissez...</option>";
  17.  $requete = "SELECT * FROM aido_tutos_type ORDER BY Name";
  18.  $result = mysql_query($requete, $idConnexion);
  19.  while ($enreg2 = mysql_fetch_array($result))
  20.  {
  21.   echo "\n".'<option value="'.$enreg2['Id'].'"';
  22.   if ($_GET['edit'] && $enreg['Type'] == $enreg2['Id'])
  23.   {
  24.    echo ' selected';
  25.   }
  26.   echo '>'.$enreg2['Name'].'</option>';
  27.  }
  28. ?>
  29. </td>
  30. </tr>
  31. <tr>
  32.  <td class="table1">Titre : </td>
  33.  <td class="table1"><input type="text" name="Titre" size="65" value="<?=$enreg['Titre']?>" /><small> (35 caracteres maximum)</small></td>
  34. </tr>
  35. <tr>
  36.  <td class="table1">Texte : </td>
  37.  <td class="table1"><textarea name="Texte" cols="65" rows="16"><?=$enreg['Texte']?></textarea></td>
  38. </tr>
  39. <tr>
  40.  <td class="table1">&nbsp;</td>
  41.  <td class="table1"><input type="submit" value="Enregistrer" name="ok">&nbsp;<input type="button" value="Pr&eacute;visualiser" onClick="$_POST['previsu']" name="previsu"></td>
  42. </tr>
  43. </table>
  44. </form>


 
Mon problème, c'est que j'ai un

Code :
  1. if ( isset ( $_POST['previsu'] ) )

 
 
Si je le mets tout en haut, le formulaire n'est pas posté lorsque l'on clique sur prévisualiser, et est posté avec le enregistrer. Ca doit être un coup de bol, ou une exploitation d'un bug de mon script, je sais pas .. :x  
 
Bref, pour le confort du posteur, je voudrais qu'il puisse récupérer son post lorsqu'il le prévisualise quoi, hisoitre de pas avoir à tout retaper :mrgreen:
 
Bref, bon, dans ce if isset, j'ai la prévisualisation, et aussi le même formulaire avec les values rentrées.
Et la, par contre, lorsque je reposte à partir de ce deuxi_ème formulaire, ça marche pas .. Ca envoie pas.  
Alors, si je mets pas ce if isset tout en haut mais un peu plus bas ( j'me comprends ), la requête est effectuée même si on clique sur le Prévisualiser ..  
 
Bref, il ne peut pas y avoir deux bouton submit qui effectuent deux actions bien différentes grâce à leurs noms ?  
Si oui, comment ? :)
 
Merci !


---------------
Hello hello super jello
Reply

Marsh Posté le 17-03-2005 à 18:18:37   

Reply

Marsh Posté le 18-03-2005 à 00:56:21    

Hello,
 
Je comprends pas tous, mais tu peux avoir deux bouton submit qui font deux action differente sur un meme form !
 

Code :
  1. Test.html :
  2. ...
  3. <FORM ACTION='test.php' METHOD='POST'>
  4. <INPUT TYPE='text' NAME='text'1 VALUE='test bouton 1'>
  5. <INPUT TYPE='text' NAME='text2' VALUE='test bouton 2'>
  6. <INPUT TYPE='submit' NAME='bouton1' VALUE='Bouton 1'>
  7. <INPUT TYPE='submit' NAME='bouton2' VALUE='Bouton 2'>
  8. </FORM>
  9. ...


 

Code :
  1. test.php
  2. <?
  3. if(isset($_POST['bouton1'])){
  4. echo $_POST['text1'];
  5. }elseif(isset($_POST['bouton2'])){
  6. echo $_POST['text2'];
  7. }
  8. ?>


Message édité par bozocarzu le 18-03-2005 à 00:56:52
Reply

Marsh Posté le 18-03-2005 à 18:08:31    

En fait j'ai ça, mais soit le formulaire se valide même avec la prévisualisation, soit, si j'isole ma requete avec un isset ($_POST['ok']) , lorsque je prévisualise et qu'ensuite je clique sur envoyer, ça send plus à la BDD :cry:


---------------
Hello hello super jello
Reply

Marsh Posté le 19-03-2005 à 18:52:03    

B'Urp :)


---------------
Hello hello super jello
Reply

Marsh Posté le 19-03-2005 à 19:06:41    

> bozocarsu : les tag html s'ecrivent en minuscules, ansi que leurs attributs ;)  
 
> pouzy , fait un print de tes $_POST ( => print_r() ) et tu comprendras probablement ou est l'erreur :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-03-2005 à 11:21:31    

Euh, je le fais où le print ? ( je suis débutant de chez débutant en PHP, aucune base fondée, que des observations des scripts des autres :( )


---------------
Hello hello super jello
Reply

Marsh Posté le 20-03-2005 à 11:24:19    

Ou tu veux, le $_POST reste le meme sur tout le script (a moins que tu le modifie, ce qui n'a pas de sens)

Reply

Marsh Posté le 20-03-2005 à 11:54:16    

Je fais un print_r($_POST) ?  
Parce que si tu parles de juste voir si le $_POST marche bien , oui, lorsque tu clique sur la prévisu, tu vois ien ce que tu as écrit et tout ;) Je me sers des variables echo $_POST['Texte'] & co :)


---------------
Hello hello super jello
Reply

Marsh Posté le 20-03-2005 à 12:32:32    

fai le print_r et regarde si tout ce que tu cherche y est. S

Reply

Marsh Posté le 20-03-2005 à 14:51:37    

J'ai peur de ne pas comprendre la .. :(  
 

Code :
  1. if ( isset ( $_POST['previsu'] ) )
  2. {
  3.   echo '<div align="center"><u><i>Voici un aperçu du tutoriel que vous vous apprêtez à envoyer. Vous pouvez encore le modifier.</i></u><br /><br /><br />
  4.   <tr><td class="tutos_page_tut"><br />Titre :<b>'.$_POST['Titre'].'</b><br /><br /></td></tr>
  5.   <center><tr><td class="tutos_page_tut"><br /><br />'.bbcode($_POST['Texte']).'<br /><br /></td></tr></center>
  6.   <tr><td class="tutos_page_tut"><br />Par <b>'.$user.'<br /><br /></b></td></tr>';
  7. print_r ($_POST);
  8. echo '<hr /><div align="center"><strong>Vous pouvez continuer de modifier votre tutoriel dans ce formulaire :</strong><br /><br /></div>';
  9. }


 
Ca, ça m'affiche bien ce que j'ai mis en texte dans le formulaire, mais rien pour le print_r ... :/ Help ? :)


---------------
Hello hello super jello
Reply

Marsh Posté le 20-03-2005 à 14:51:37   

Reply

Marsh Posté le 20-03-2005 à 14:55:14    

c'est quoi ce code :hebe:
a mon avis, il y a du DW la dessous :/


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-03-2005 à 15:18:05    

Nop ... mais du débutant .. pas de DW


---------------
Hello hello super jello
Reply

Marsh Posté le 20-03-2005 à 15:20:56    

bin tu ferais mieux d'apprendre l'html avant, ca te permetrait de faire quelques chose qui marche au moins
 
parce que la ton code !!! elle est ou la balise <table>


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-03-2005 à 15:32:49    

Le code est pas entier ... Question HTML je pense que je m'en sors sinon j'aurais jamais réussi à faire le site de mon profil, non ?  
La c'est juste une question de php .. le isset est inclus dans une table ...  
 
Si t'as envie que je te C/C le code qui fait 232 lignes, j'veux bien ... :)  
 
Bref, pas d'idée autre que critique ? ;)


---------------
Hello hello super jello
Reply

Marsh Posté le 20-03-2005 à 20:06:32    

Colle le print_r a la 1ere ligne de ton script.
 
Et non a voir tu y connais rien en html, donc ton site de profil est pas une preuve


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-03-2005 à 09:33:42    

esox_ch a écrit :

> bozocarsu : les tag html s'ecrivent en minuscules, ansi que leurs attributs ;)  


 
http://www.w3.org/TR/html401/interact/forms.html
 
J'avoue les attributs sont en minuscules ...... C'est pas de l XHTML ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed