action du bouton différente de action du form ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : action du bouton différente de action du form ?

par Daviwys » 06 févr. 2006, 15:41

Salut "truc"

Oui, effectivement je peux faire ainsi si je veux traiter le formulaire sur "la même" page mais je voulais absolument que la page soit traiter par une autre page.

Je dit "je voulais" car je viens de trouver la solution sur un autre forum :wink:, mais merci quand même pour ta proposition :)

Donc, au cas où sa intéresse, pour que mon bouton nommé "submit" puisse envoyer mon formulaire à une autre page, je l'ai construit ainsi :

Code : Tout sélectionner

<input type="submit" name="submit" onclick="document.form1.action='page2_2.php';" value="Nouveau" />
J'ai donc remplacé le type "button" par "submit", puis la valeur du onclick par :
document.form1.action='page2_2.php';

Trop content, je suis ! :D

Au plaisir de se relire prochainement, et à bientôt.

par Truc » 06 févr. 2006, 15:13

Salut,

En principe suffit de récupérer le nom du bouton cliqué ce que tu fait d'ailleurs:
if(isset($_POST['ajoute']) || isset($_POST['del_option']) || isset($_POST['edite_option']))
mais tu exécute le même code avec touts les boutons.

Tu peux donc très bien effectuer plusieurs traitements sur la même page en différenciant les boutons.
if(isset($_POST['ajoute'])
{
   //code d'ajout
}
elseif (isset($_POST['del_option']))
{
   //code de modifs
}

action du bouton différente de action du form ?

par Daviwys » 06 févr. 2006, 02:46

Bonjour à tous :wink:

En gros, j'essaye de me faire "un formulaire pour ajouter un sondage" et j'aimerais poster mon formulaire vers une autre page à celle défini par le champ "action" du form. Est-ce possible ?

Je met la source de ma page ci-dessous avec ce que j'ai fais déjà...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>SONDAGE</title>
</head>

<body>



<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="form1" id="form1">
<fieldset><legend>FORMULAIRE</legend>
Question : <input name="question" type="text" value="<?php if(isset($_POST['question'])) { echo $_POST['question']; } ?>" /><br />
<?php
$plus=1;
//if(isset($_GET['option']) && $_GET['option']!='') {
if(isset($_POST['ajoute']) || isset($_POST['del_option']) || isset($_POST['edite_option'])) {
//$opt=$_GET['option'];
  foreach($_POST['option'] as $clef => $valeur) {
    if(isset($_POST['del_option'][$clef])) {
	  $_POST['option'][$clef]=='';
	} else {
	  if($_POST['option'][$clef]!='') {
?>
	  :: OPTION <?php echo $clef; ?> : <input name="option[<?php echo $clef; ?>]" type="text" value="<?php echo $valeur; ?>" /> <input type="submit" name="edite_option[<?php echo $clef; ?>]" value="Modifier" /> 
<input type="submit" name="del_option[<?php echo $clef; ?>]" value="Supprimer" /><br />
<?php
	  }
    }
	$plus=$clef+1;
  }
}

//if(isset($_POST['option'])) { $plus=count($_POST['option']!='')+1; }
?>
:: OPTION <?php echo $plus; ?> : 
<input type="text" name="option[<?php echo $plus; ?>]" value="" /> 
<input type="submit" name="ajoute" value="Ajouter une option" /><br />
<input type="button" name="submit" onclick="this.form.submit('page2_2.php');" value="Nouveau" /><br /><br />
</fieldset>
</form>

</body>
</html>
Ma page fonctionne très bien dans l'ensemble, mais comme je ne m'y connais pratiquement pas en "JavaScript", je croyais qu'en transformant le bouton "submit" en "button" et en lui affectant un "onclick" avec la fonction jascript "this.form.submit()" (en précisant une URL) que sa posterait vers une autre page.
Et bien : non :cry:

Dommage ! Donc si on peut me donner une méthode sa serait sympa :lol:

Merci d'avance à tous pour votre aide :D