Bouton submit

guguin Messages postés 3 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 27 février 2005 - 25 févr. 2005 à 17:45
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 - 28 mai 2005 à 19:26
J'ai un formulaire avec plusieurs boutons. Je voudrais savoir s'il est possible de passer en paramètre (méthode POST) le nom du bouton sur lequel on a cliqué pour poster le formulaire uniquement en PHP.


voici un bout de mon script PHP :





<?php
mysql_select_db($Base_Nom,$Base_connection);
$Quest = mysql_query($MaRequete, $Base_connection) or die (mysql_error());
$MonTableau= mysql_fetch_assoc($Quest);


j'ai un formulaire avec plusieurs boutons. Je voudrais savoir s'il est possible de passer en paramètre (méthode POST) le nom du bouton sur lequel on a cliqué pour poster le formulaire uniquement en PHP.


voici un bout de mon script PHP :


$i=1;
$max=6;
for($i;$i<=$max;$i++)
{
if(isset($_POST[$MonTableau['quest_numero'].$i]))
{
$Recuperation= $_POST[$MonTableau['quest_numero'].$i];
echo $Recuperation;
}
}
?>



<html>


<head>
</head>




<form name="bib" action="" method="POST">


<?php


do
{
echo $MonTableau['quest_libel']. "
";
}
while($MonTableau= mysql_fetch_assoc($Quest));
?>


Merci d'avance

7 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
25 févr. 2005 à 19:46
Salut,



si tu veux récupérer le nom du bouton que l'internaute a cliqué, tu peux faire ceci :







lorsque l'internaute enverra le formulaire tu auras un champ $_POST['bouton1'] de valeur 'Envoyer'



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
guguin Messages postés 3 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 27 février 2005
26 févr. 2005 à 11:46
Tous dabords merci de m'avoir répondu, ça me fait très plaisir.


Alors voila ce que je désire faire.


En fait dans une étape ultérieur, je saisie des question. Ceux-ci sont numeroté de façon unique. Elle contienne également un libel qui est l'énnoncé de la question, et enfin la réponse a celle-ci.


Maintenant, je voudrait utiliser ces questions, mais de façon dynamique.
Donc je fait une requete qui utilise la table qui contient tous les enegistrement cocernant les questions. Et je les met dans un tableau.


Maintenant je crée une boucle qui va afficher tous les libels. Puis toujours dans cette boucle juste après les libels, je place un bouton submit. Il peut donc y avoir 6 questions avec 6 bouton submit, voire plus...
C'est maintenant que vient le probleme:
Je souhaite que ce nom soit dynamique, donc j'utilise mon tableau et utilise les numero.
Ainsi chaque bouton est unique.
Jusque la j'arrive la faire. En regardant le source de la page j'obtient bien tous cela.


Le but est maintenant de récuperer le bouton submit, mais seulement le nom, du submit, car il est unique.


Ensuite je n'aurait plus qu'a utiliser cela dans une requete avec un where pour afficher la réponse qui correspond a la question.


J'espère avoir été un pas trop confu.


Donc mon seul probleme est de récuperer le nom du submit.
Après de très nombreuses tentatives, je ne récupère toujours que le premier enregistrement.
J'ai également utiliser dèriere le submit un hidden, mais cela ne marche toujours pas.


Je vais mieux commanter mon script:


<?php
mysql_select_db($Base_Nom,$Base_connection); //j'utlise un autre fichier qui contient mes connections que j'utilise avec require_once
$Quest = mysql_query($MaRequete, $Base_connection) or die (mysql_error());
$MonTableau= mysql_fetch_assoc($Quest);//Je stocke ma requete dans un tableau.


//--------------Cette partie est utiliser que quand je clique sur le submit.


$i=1;
$max=6;//nombre de question maxi
for($i;$i<=$max;$i++)
{
if(isset($_POST[$MonTableau['quest_numero'].$i]))
{
$Recuperation= $_POST[$MonTableau['quest_numero'].$i];
echo $Recuperation;//Ici donc cela devrait afficher le nom du bouton, different pour chaque submit.
}
}
?>
//-----------------------------------------
<html>


<head>
</head>




<form name="bib" action="" method="POST">


<?php


do //Boucle pour afficher le libel de la question, le bouton submit et le hidden. Ainsi j'affiche en dynamique mes questions.
Il faut donc que je récupère le submit ou le hidden.
J'obtient un résultat, mais cela n'affiche que le premier enregistrement. Il faudrait par exemple si le nom du submit est deux que je récupère et affiche 2, pour le nom du submit si c'est 3...
{
echo $MonTableau['quest_libel']. "
";
}
while($MonTableau= mysql_fetch_assoc($Quest));
?>

Voila, si vous pouvez m'aider, car je bloque depuis 3 jour dessus.


Merci d'avance.
Et merci d'avoir prit la peine de vouloir m'aider.
0
guguin Messages postés 3 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 27 février 2005
27 févr. 2005 à 16:55
C'est vrai que c'est un peu trop long mon explication, donc je vais condencer.
Donc pour résumer:


J'utilise et stocke des informations sur des questions par le biais d'une requete et d'un mysql_fetch_assoc.
Ensuite je cré une boucle qui affiche ces information, notamment le libel de la question. Toujours dans cette boucle et donc juste après ce libel je place un bouton submit. La particlarité de ce bouton submit est qu'il n'a pas un nom écris en "dur" mais en dynamique. C'est a dire qu'il fait référence a la base de donnée. Ce sont des chiffre donc unique pour bien les différencier.
Al'affichage tous vas bien, j'ai tous mes libel, et a chaque fois deriere un bouton submit ayant un nom différent.


Donc le hic:
Et bien quand je clique sur le bouton, il faudrait que je récupère ce fameux nom du bouton. Et non son value qui n'a que très peu d'inportance.
Si je pouvais le récupérer cela me servirais ensuite a faire une requete, dont ce nombre serais utilisé dans une requete avec un where pour afficher les réponse a cette questions.


Donc j'ai créé dans la récupération en method POST une boucle for, avec incrémentation, mais rien n'y fait. J'arrive tout au plus a récupérer le numero du premier bouton, en fait du premier enregistrement si ces bouton son très par un order by.


Je sais mon projet est un peu bizare, mais il me permet de n'écrire en fait très peu en "dur" dans le programme est donc de laisser la plus grande fléxibilité, quand au nombre de question de réponse.....


Voila, merci d'avance
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
27 févr. 2005 à 18:21
Bonjour,

la seul facon que je connais c'est le foreach :

<?php

foreach($_POST as $key=>$val) {

$name = array('nom1', 'nom2', 'nom3', '...');

if(in_array($key, $name)) {

$name_submit = $key;

}

}

?>



<hr>

<object id="animation" style="width: 550px; height: 75px;" codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=6,0,47,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"></object>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
25 mai 2005 à 10:55
J'ai pas très bien compris ton code JoJo738 (je comprend jamais rien au "foreach($_POST as key=>$val)" ).



Ca te dérangerait de m'explique à quoi sert ton bout de code s'il-te-plaît? Parce que j'ai le même problème que guguin.



Merci
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
25 mai 2005 à 14:07
Salut,



la variable $name est inutile dans ton foreach, place-là au dessus pour
éviter de la déclarer à chaque boucle et optimiser ton script.



<?php


$name = array('nom1', 'nom2', 'nom3', '...');


foreach($_POST as $key=>$val) {

if(in_array($key, $name)) {

$name_submit = $key;

}

}

?>

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
28 mai 2005 à 19:26
Oups, c'était une mauvaise manipulation

<hr style="width: 100%; height: 2px;">Si ma reponse te convient, merci de l'accepter !
0
Rejoignez-nous