Problème de Formulaire et de $_POST

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 : Problème de Formulaire et de $_POST

par Pierig » 04 juil. 2007, 13:08

J'ai du très mal m'exprimer effectivement mais ce que je doit faire c'est et lister et avoir mon bouton ajouter sur la même page.
En fait je n'ai que le bouton ajouter le listing se fait tout le temps.

EDIT :

J'ai changer mes balises <form> et </form> de place et je les aient mises un p'ti peu partout et finalement ça passe ... comme quoi même en programmation on peut avoir un peu de chance des fois :D

VERSION CORRIGEE :

	?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
	<!-- Définition standard du <head> de la page -->
	<?php require_once ('header.phtml'); ?>
	
		
		
</head>
<LINK REL="SHORTCUT ICON" href="favicon.ico">
<body>
	<a name="top"></a> 
	<!-- ENTETE -->
	<div id="conteneur">
		<?php require_once('bandeau.phtml'); ?>	
		<?php require_once('menu.phtml'); ?>	
		<div id="contenu">
			<form name="formListeClasseur" onsubmit= action='controller_principal.php method='post'>
				<input name='f_module' 		type='hidden' value='ajoutclasseur'			/>
				<input name='f_action' 		type='hidden' value='Listeclasseur'		/>
			</form>
			
			<table width="90%" border="0" align="center">
				<tr>
					<td align="center" class="css_SousFonction" colspan='4'>
						
					</td>
				</tr>
				<tr>
					<td align="left" colspan='4'>&nbsp;
					</td>
				</tr>
				<table width="90%" border="0">
						<tr>
							<td align="center" class="css_SousFonction" colspan='4'>
								Liste des Classeurs
							</td>
						</tr>
				</table>

				<?php if(isset($t_tache->resultat) && !empty($t_tache->resultat)){?>
				<table width="90%">

					<tr class="css_SousFonctionAlt">
						<td align="center" colspan='2'>
							<img src="images/fleche2_fb.gif" width="6" height="9" alt=""/>
							Classeurs actuellement disponibles 
						</td>
					</tr>
					<br>
					<!-- Parcours du resultat afin de creer la liste dynamiquement-->

					 <?php foreach ($t_tache->resultat as $key=>$produit)
						{
							if($key%2==0)
								$style_ligne='css_ligne';	
							else
								$style_ligne='css_ligneAlterne';?>
								<tr class="<?php echo $style_ligne?>">
									<td align="center"  >
										<?php echo $produit->getCLASSEUR_CLASSEMENT() ?>
									</td>
								</tr>
					<?php } ?>
					<tr>
		                <!-- Affichage des liens de paginations-->
		                <td colspan='4' align="left"><?php echo $t_tache->getOutputHTML("controller_principal.php"); ?></td>
		            </tr>
					</table>
					<?php
					}
					else 
					{?>
					<table width="90%" border="0">
						<br>
						<tr>
							<td align="left" class="input_champ" style="font-style: italic">
								Il n'y a actuellement aucun classeur d'enregistré dans la base.
							</td>
						</tr>
					</table
					<?php } ?>
					<form name="formAjoutclasseur" onsubmit= action='controller_principal.php' method='post'>
						<input name='f_module' 		type='hidden' value='ajoutclasseur'			/>
						<input name='f_action' 		type='hidden' value='ajoutclasseur'		/>
					<table width="90%" border="0">
					<br>
						<tr class="css_SousFonctionAlt">
							<td align="center" colspan='2'>
								<img src="images/fleche2_fb.gif" width="6" height="9" alt=""/>
								Ajouter un classeur
							</td>
						</tr>
							<tr>
								<td align="left" colspan='4'>&nbsp;
								</td>
							</tr>
						</tr>
						<tr>
							<td class='input_champ' align="center">
								<input name='f_classeur' type="text" class="saisie" size="20" value='<?php echo $r_classeur ?>' onclick='initInput(this)'/>			
							</td>
						</tr>
					<br>	
					<tr>
					<td>&nbsp;</td>
				</tr>
				<br>
				<tr>
					<td colspan="2" align="center">
						<input type='image' src='images/boutons/btn_ajouter_on.gif'
									onmouseover="overlib('Ajouter le classeur');this.src='images/boutons/btn_ajouter_off.gif'" 
									onmouseout="nd();this.src='images/boutons/btn_ajouter_on.gif'" 
									onclick='document.formAjoutclasseur.submit()'/>
					</td>
				</tr>
			</table>
			</form>
		</div>
		<div id="pied_page">
			<?php require_once('footer.phtml'); ?>	
		</div>	
	</div> 
</body>
</html>

par Ryle » 04 juil. 2007, 12:34

Pas sur d'avoir tout bien compris, du coup pourquoi ne pas faire un seul formulaire complet qui contient tous tes champs et modifier la valeur de l'action (ou vraissemblablement du champ 'f_action') en fonction du bouton cliqué ?

genre :

Code : Tout sélectionner

<input type="button" onClick="document.formClasseur.f_action.value='Listeclasseur'; document.formClasseur.submit();" value="Lister" /> <input type="button" onClick="document.formClasseur.f_action.value='ajoutclasseur'; document.formClasseur.submit();" value="Ajouter" />

Problème de Formulaire et de $_POST

par Pierig » 04 juil. 2007, 12:17

Bonjour,

C'est encore moi et j'ai à nouveau besoin de votre aide :wink:
J'ai une qui est celle ci :
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
	<!-- Définition standard du <head> de la page -->
	<?php require_once ('header.phtml'); ?>
	
		
		
</head>
<LINK REL="SHORTCUT ICON" href="favicon.ico">
<body>
	<a name="top"></a> 
	<!-- ENTETE -->
	<div id="conteneur">
		<?php require_once('bandeau.phtml'); ?>	
		<?php require_once('menu.phtml'); ?>	
		<div id="contenu">
			<form name="formListeClasseur" onsubmit= action='controller_principal.php method='post'>
				<input name='f_module' 		type='hidden' value='ajoutclasseur'			/>
				<input name='f_action' 		type='hidden' value='Listeclasseur'		/>
			</form>
			<form name="formAjoutclasseur" onsubmit= action='controller_principal.php' method='post'>
				<input name='f_module' 		type='hidden' value='ajoutclasseur'			/>
				<input name='f_action' 		type='hidden' value='ajoutclasseur'		/>
			</form>
			
			<table width="90%" border="0" align="center">
				<tr>
					<td align="center" class="css_SousFonction" colspan='4'>
						
					</td>
				</tr>
				<tr>
					<td align="left" colspan='4'>&nbsp;
					</td>
				</tr>
				<table width="90%" border="0">
						<tr>
							<td align="center" class="css_SousFonction" colspan='4'>
								Liste des Classeurs
							</td>
						</tr>
				</table>

				<?php if(isset($t_tache->resultat) && !empty($t_tache->resultat)){?>
				<table width="90%">

					<tr class="css_SousFonctionAlt">
						<td align="center" colspan='2'>
							<img src="images/fleche2_fb.gif" width="6" height="9" alt=""/>
							Classeurs actuellement disponibles 
						</td>
					</tr>
					<br>
					<!-- Parcours du resultat afin de creer la liste dynamiquement-->

					 <?php foreach ($t_tache->resultat as $key=>$produit)
						{
							if($key%2==0)
								$style_ligne='css_ligne';	
							else
								$style_ligne='css_ligneAlterne';?>
								<tr class="<?php echo $style_ligne?>">
									<td align="center"  >
										<?php echo $produit->getCLASSEUR_CLASSEMENT() ?>
									</td>
								</tr>
					<?php } ?>
					<tr>
		                <!-- Affichage des liens de paginations-->
		                <td colspan='4' align="left"><?php echo $t_tache->getOutputHTML("controller_principal.php"); ?></td>
		            </tr>
					</table>
					<?php
					}
					else 
					{?>
					<table width="90%" border="0">
						<br>
						<tr>
							<td align="left" class="input_champ" style="font-style: italic">
								Il n'y a actuellement aucun classeur d'enregistré dans la base.
							</td>
						</tr>
					</table
					<?php } ?>
					<table width="90%" border="0">
					<br>
						<tr class="css_SousFonctionAlt">
							<td align="center" colspan='2'>
								<img src="images/fleche2_fb.gif" width="6" height="9" alt=""/>
								Ajouter un classeur
							</td>
						</tr>
							<tr>
								<td align="left" colspan='4'>&nbsp;
								</td>
							</tr>
						</tr>
						<tr>
							<td class='input_champ' align="center">
								<input name='f_classeur' type="text" class="saisie" size="20" value='<?php echo $r_classeur ?>' onclick='initInput(this)'/>			
							</td>
						</tr>
				<br>	
				<tr>
					<td>&nbsp;</td>
				</tr>
				<br>
				<tr>
					<td colspan="2" align="center">
						<input type='image' src='images/boutons/btn_ajouter_on.gif'
									onmouseover="overlib('Ajouter le classeur');this.src='images/boutons/btn_ajouter_off.gif'" 
									onmouseout="nd();this.src='images/boutons/btn_ajouter_on.gif'" 
									onclick='document.formAjoutclasseur.submit()'/>
					</td>
				</tr>
			</table>
		</div>
		<div id="pied_page">
			<?php require_once('footer.phtml'); ?>	
		</div>	
	</div> 
</body>
</html>
Désoler c'est un peu long mais j'ai un problème sur la page et je ne sait pas ou :(
En gros voilà ce que c'est senser faire :

1. Afficher les résultat d'un select fait dans une de mes classes
2. Créer la pagination avec une autre classe
3. Insérer mon produit dans encore une autre classe

mais ce n'est pas un problème de classe ! :D
En fait j'ai deux choix qui s'offre a moi, la page ne fonctionnera qu'à 50% et oui je peut faire la pagination correctement ou l'insertion d'un "classeur" mais les deux en même temps ne fonctionnent pas.
Pour choisir comment faire je change mes formulaire de place ( je met le </form> plus bas ou plus haut ...)

Là c'est la version ou la pagination fonctionne donc j'aurai aimer trouver une solution pour que mon champs texte ('f_classeur') soit bien renvoyé.
<input name='f_classeur' type="text" class="saisie" size="20" value='<?php echo $r_classeur ?>' onclick='initInput(this)'/>
Donc je pense que la syntaxe est correcte partout mais c'est juste que les formulaire ne sont pas correctement agencés. :roll:

Pour info quand j'ajoute le "classeur" je click sur l'image suivante qui submit vers le même formulaire que dans lequel elle est à mon avi le problème est dans le coin ... mais ou ? :(
<input type='image' src='images/boutons/btn_ajouter_on.gif'
									onmouseover="overlib('Ajouter le classeur');this.src='images/boutons/btn_ajouter_off.gif'" 
									onmouseout="nd();this.src='images/boutons/btn_ajouter_on.gif'" 
									onclick='document.formAjoutclasseur.submit()'/>

Voilà voilà
Merci de m'avoir lu.