formulaire avec 2 actions

ViPHP
ViPHP | 2144 Messages

06 mai 2005, 10:43

En effet, dans le cas ou de nombreuses actions sont possible, c'est plus simple à implémenter :wink: :wink: :wink:

Eléphant du PHP | 158 Messages

06 mai 2005, 10:58

T'as un exemple pour le test stp ? :)
°°°Darkbibou°°°

Mammouth du PHP | 19672 Messages

06 mai 2005, 11:07

Non, faudrait que je te mette la page de code du site du client, ça ne me parait pas approprié.

Mais si tu as compris le principe, commence à mettre du code:
- ajuste ton formulaire: si tu as un doute, passe ici.
- Prépare le traitement PHP d'en-tête de fichier, même chose, si tu as un doute ou que tu es carrément à l'ouest, viens ici.
- teste, note les messages d'erreur éventuels (avec les numéros de ligne) et reviens ici avec l'erreur et la ligne incriminée si tu arrive pas à trouver tout seul :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 158 Messages

06 mai 2005, 11:58

Si je met ca comme submit :

Code : Tout sélectionner

<input type="hidden" name="modif_action_form" value=""> <TABLE align="center"> <TR> <TD><INPUT type="submit" value="Afficher la structure" onClick="document.forms['form_consultation'].elements['modif_action_form'].value='structure'"></TD> <TD width="100"></TD> <TD><INPUT type="submit" value="Afficher les données" onClick="document.forms['form_consultation'].elements['modif_action_form'].value='donnees'"></TD> <TD width="100"></TD> <TD><INPUT TYPE="reset" VALUE="Effacer"></TD> </TR> </TABLE>
et en première ligne de fichier ca sachant que les deux fichiers php4 sont dans le meme repertoire que le formulaire:
<?
	if(modif_action_form.value== "donnees"){
		fopen("consultation_données.php4");
	}else{
		fopen("consultation_structure.php4");
	}	
?>
C bon ou je me plante completement ? :(
°°°Darkbibou°°°

Mammouth du PHP | 19672 Messages

06 mai 2005, 12:02

Dans l'idée, c'est ça, mais tu vas tester en PHP, donc :
if(isset($_POST['champ_cache']))
{
    $choix = $_POST['champ_cache'];
    if($choix == "structure")
    {
        // redirection vers la page pour la structure
    }
    elseif($choix == "donnees")
    {
        // redirection vers la page pour les données
    }
}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 158 Messages

06 mai 2005, 12:19

Voila mon code , tu pense que ca peu marcher ?
<?
if(isset($_POST['modif_action_form'])) 
{ 
    $choix = $_POST['modif_action_form']; 
    if($choix == "structure") 
    { 
       header("Location: consultation_structure.php4");
    } 
    elseif($choix == "donnees") 
    { 
        header("Location: consultation_donnees.php4");
    } 
} 
?>
	
<HTML>

	<HEAD>
					<TITLE> Consultation </TITLE>
	</HEAD>

<BODY>

	
	<FORM NAME='form_consultation' METHOD='post' ACTION='Copie de Formulaire_pour_la_consultation.php4'>
	<BR>
	<H2 align="center">Formulaire de consultation des table de la base des stages</H2>
	<BR>
	
	<TABLE align="center" cellspacing="1" border="1">
	
		<TR>
			<TD align="center">Choissisez la table dont vous souhaitez afficher les données :</TD>
			<TD><select name="table_select">
					<option></option>
					
			<!-- Debut du script en php -->
	<?
		//connexion à la base de données:
		$liendb=mysql_connect("localhost","root","")or die("la connexion à la base a échoué");
		// selection de la base à remplir:
		mysql_select_db("base_stage")or die("Impossible de se connecter à la base de données");
;
		
		// requête d'affichage de la liste des tables
		$sql="SHOW TABLES";

		$resultat_show_table=mysql_query($sql); //on place le résultat de la requête dans une variable
				
		/*affichage des données de la liste déroulante*/ 
						
		while($aff_nom_table = mysql_fetch_row($resultat_show_table))

		{  // tant que $aff_nom_entreprise existe on fait:
			
				echo"<OPTION>".$aff_nom_table[0]."</OPTION>";
				
		} // fin du while/tant que
				
		// Fermeture de la base 
		mysql_close($liendb);
		
	?>
	<!-- Fin du script en php -->
			
			</select></TD>
		</TR>
	
	
	</TABLE>
	
	<BR><BR>
	<input type="hidden"  name="modif_action_form" value="">
		
	<TABLE align="center">
						
		<TR>
			<TD><INPUT type="submit" value="Afficher la structure" onClick="document.forms['form_consultation'].elements['modif_action_form'].value='structure'"></TD>
			<TD width="100"></TD>
			<TD><INPUT type="submit" value="Afficher les données" onClick="document.forms['form_consultation'].elements['modif_action_form'].value='donnees'"></TD>
			<TD width="100"></TD>
			<TD><INPUT TYPE="reset" VALUE="Effacer"></TD>
		</TR>
		
	</TABLE>

	</FORM>


</BODY>

</HTML>
en debut de mes deux script php j'ai mis:
<?
session_start(); 

// récupération des données depuis la page HTML/PHP pour PHP4 ou supérieur

$table_a_afficher= $_SESSION['table_select'];
°°°Darkbibou°°°

Mammouth du PHP | 19672 Messages

06 mai 2005, 12:27

C'est un très bon début, mais il manque quelque chose: Il faut initialiser les variables de session, donc juste après avoir vérifié qu'un bouton a été cliqué, tu récupères les infos du formulaire et tu les passes dans les variables de session:
<?
if(isset($_POST['modif_action_form']))
{
    $_SESSION['table_select'] = $_POST['table_select'];
    // pareil pour les autres valeurs...
    $choix = $_POST['modif_action_form']; 
    // etc...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 158 Messages

06 mai 2005, 14:32

Genial tout fonctionne :D :D :D

Merci Beaucoup pour ton aide !!!!!
°°°Darkbibou°°°

Mammouth du PHP | 19672 Messages

06 mai 2005, 14:36

Pas de quoi ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 406 Messages

10 mai 2005, 15:30

quand on clique sur un des bouton on reste sur la meme page ou on change de page ?

Eléphant du PHP | 158 Messages

10 mai 2005, 15:35

Ca relance la meme page donny :)
°°°Darkbibou°°°

Eléphant du PHP | 406 Messages

10 mai 2005, 15:46

je vais essayer de comprendre parceque j ai pas trop capter le truc du champs hidden et comment on fait pour recuperer cette valeur et l affecter à un des bouton.