PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Bonsoir JC,
Je ne disais pas cela pour isset mais pour $_post, isset vérifiant seulement que la variable a bien été affectée ou pas dans le cas qui nous intéresse. Par contre la variable n'est testée que par rapport à $_post ce qui implique que le formulaire ait bien été rempli par l'utilisateur sans quoi $_post n'est pas activé et ne peut pas être utilisé, voilà pourquoi je posais la question.
Est-ce que je me trompe?

#2 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

RE,
Oui en fait s'agissant de la gestion dynamique des pages tu conditionnes l'appel de l'une ou l'autre suivant des variables qui peuvent être dynamiquement calculées ou modifiées. C'et clair.
Pour aller plus loin j'avais dans l'idée de générer des pages dynamiquement, de toute pièce et de les faire exécuter; mais ceci est encore d'un autre niveau ça fait appel à une technique de générateur (ceci me rajeunirait car c'est une technique que j'ai souvent utilisée, très tôt.... en 1970 pour mon premier générateur de programmes Cobol pour le squelette du programme gérant toute la partie logique de la logique du programme à partir d'un paramétrage issu d'une méthode d'analyse appelée MINOS).
Ceci est un autre sujet mais qui me tient à cœur de vérifier également en PHP, faire en quelque sorte un générateur d'application.

#3 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Bonjour JC,
Merci beaucoup, je pense avoir bien compris maintenant et tu as sans doute raison je pourrai anticiper sur le choix des traitements en demandant un choix multiple à l'utilisateur dès le premier formulaire et qui sera également passé en variable, après quoi on peut effectivement conditionner automatiquement les traitements.
Par contre es-tu sur qu'on puisse utiliser $_post dans la condition de départ, elle ne pourra être vérifiée qu'à partir du moment où l'utilisateur aura répondu au premier formulaire ligne2?
 


if (!isset($_POST['var_1'])&&!isset($_POST['var_2'])&&!isset($_POST['var_3'])){display_form1();exit;}

#4 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Bonjour,
Merci pour les exemples et les précisions de vocabulaire.
Je pense avoir compris mais je crois être un peu perdu face à mon exemple.
Si j'ai bien compris l'approche consiste à faire une page qui n'affiche rien et qui seulement teste des conditions de valeurs de variables afin d'appeler les fonctions de traitement correspondante aux résultats des conditions trouvées. Cette page sert comme tu le dis une page contrôleur.
Mais pour revenir à mon exemple très simple il y a comme préambule le fait qu'il faudra:
1) Demander la saisie des données clients au travers d'un formulaire unique,
2) Demander à l'utilisateur ce qu'il veut faire sachant que les traitements ne dépendent pas du résultat de la saisie des données.
En conséquence, quelle que soit l'architecture envisagée, je ne vois pas comment éviter de faire deux étapes:
1) Faire une page de saisie des données clients, avec vue du formulaire, saisie et passage des valeurs des données client,
2) Faire une page de contrôle de formulaires multiples avec récupération des données par $_post et appel des fonctions de traitement correspondant au libre choix de l'utiliateur (non conditionné par des valeurs particulières).

Je tourne en rond et je ne vois toujours pas comment ne pas avoir deux pages distinctes pour dialoguer avec l'utilisateur. Encore une fois j'aurai voulu avoir tout sur une seule page avec formulaires multiples (saisie des données et choix de traitements) mais la contrainte liée à la récupération des données par $_post impose deux étapes et deux pages distinctes.
La seule chose qu'on puisse imaginer, pour n'avoir qu'une page à gérer et à maintenir, c'est de présenter la page avec des vues différentes en jouant sur les champs cachés suivant que les données clients ont été ou non déjà saisies (c'est je pense ce que vous appelez générer dynamiquement les formulaires). Au départ on ne montre que la saisie des données clients , le reste étant caché (formulaire de saisie), par la suite retour sur la même page mais cette fois avec vue des autres formulaires de traitement (formulaire d'affichage client, de saisie client, de mise à jour client, etc.....). Le tout conditionné par une variable d'affichage (false ou true) suivant le cas. 
Mais dans la réalité pour l'utilisateur cela revient toujours au même, il aura toujours deux étapes à faire car les choix de traitement dépendent de son choix et non pas de conditions.
Ai-je bien compris?
Question: Est-il possible de modifier dynamiquement les attributs des champs (cachés ou visibles)? Ou bien comment faire pour que les champs s'affichent ou pas suivant la variable d'affichage?

#5 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Bonsoir JC,
Merci pour ton aide, je suis rentré tard ce soir et il faudra que je regarde ce que tu me dis un peu plus tard. Je te tiendrai au courant.

#6 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

OK donc oublions MVC puisque je travaille avec des notions de page.
pardon d'être lourd avec vous mais une fois de plus ce n'est pas un problème d'avoir plusieurs formulaires sur une même page, cela fonctionne bien avec des noms différents et des actions différentes (j'ai d'ailleurs un exemple dans mon code pour le menu du choix de traitement proposé à l'utilisateur.
Mon problème est lié au $post, dès l'instant où il faut récupérer les données je ne vois pas comment d'autres formulaires sur la même page peuvent fonctionner. Voilà en fait le problème qui m'oblige à ouvrir une seconde page contenant les actions de traitement après avoir récupéré les données par $post provenant de la première page.

#7 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Bonjour Maljuna Kris,
J'ai essayé de comprendre mais je ne vois pas ce que ça peut résoudre au problème et à la contrainte inhérente au $post qui est propre à PHP.
D'autre part, quelle que soit l'architecture, le navigateur interprète des pages, il faudra donc bien créer des pages. Ou alors peut-être que le MVC propose un viewer spécifique à la place du navigateur tel que Mozilla?
Peut-être que je n'ai pas bien compris et sur la base de mon exemple (voir mon code) tu pourrais me montrer comment faire.
Merci d'avance pour concrétiser ce que tu proposes.

#9 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

OUI, merci à tous. Vous m'avez bien aidé.
Je n'ai pas utilisé le paramètre en URL, car moins sécurisé, j'ai utilisé les sessions.
Mais je crois que l'incompréhension vient du fait que la même page ne peut pas à la fois valider les données du formulaire client (paramètres utiles à toutes les pages) pour les $post  et permettre à l'utilisateur de faire les choix des traitements (afficher, saisir, mettre à jour, supprimer le client) par un simple click sur un bouton submit; ce qui m'a obligé de faire une autre page.
Il est clair que les données récupérables par $post ne le sont qu'à partir du moment où l'utilisateur a cliqué sur le bouton submit.
Je n'ai pas trouvé de moyen plus simple que de faire deux pages différentes, une pour saisir les paramètres, une autre pour donner le choix des traitements.
Pour moi le problème était moins un problème technique qu'un problème de logique et de conception.
J'ai finalement vu ici les limites du langage PHP et de la structure des pages.
J'ai encore beaucoup à apprendre car je suis débutant en PHP mais j'ai une certaine connaissance dans la conception des applications.
J'aurai donc sans doute encore à vous demander votre aide.
Merci encore à vous.

#10 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Je pense qu'on ne se comprends pas sur le traitement.
En fait on ne peut pas anticiper ce que l'utilisateur veut faire, premièrement on doit mémoriser les données client et ensuite donner la main à l'utilisateur pour qu'il choisisse le traitement, donc pas possible à mon avis de paramétrer dans l'URL l'argument de traitement.
Il faut bien deux pages à partir du moment où sur la première on ne peut pas activer les données clients et activer les traitements.
Ou alors je n'ai rien compris.....

#11 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

OK, vous confirmez ce que je pensais.
Il faut effectivement valider le premier formulaire qui contient les données nom, prénom, année pour pouvoir ensuite travailler sur le deuxième formulaire (quelle que soit la technique) et récupérer les données.
Ceci alourdit un peu le dialogue car il faut avoir deux pages différentes, donc deux menus, un pour saisir les données, un deuxième pour accéder aux traitements.
En fait j'essayais de voir si on pouvait faire cela avec un seul menu donc une seule page, mais apparemment vous confirmez que ce n'est pas possible. Dommage car un peu lourd.
J'ai pris acte de votre aide et j'ai utilisé deux formulaires, deux pages différentes, en utilisant les sessions, ça marche.
Mon code du premier formulaire pour saisir les données:

<?php
// On démarre la session
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Selection Nom Client</title>
</head>

<body>
<p><font face="Arial, Helvetica, sans-serif"><strong>SELECTION DU CLIENT A TRAITER </strong></font></p>

<form id="Recherche_Client" name="Recherche_Client" method="post" action="Menu_General.php">  
 <p>Nom Client :  
 <input name="Nom_Client" type="text" id="Nom_Client" size="50" maxlength="50" />

</p>

  <p>Prénom Client :
    <input name="Prenom_Client" type="text" id="Prenom_Client" size="45" maxlength="45" />
</p>
  <p>Année :
    <input name="Annee" type="text" id="Annee"  size="7" value=" 2010"maxlength="4" />
  </p>
  <p>
     <input type="submit" name="Saisie client" value="VALIDER" />
  </p>
</form>

</body>
</html>

Second code pour le menu de traitement:

<?php
/* Menu general avec sessions */
session_start();
$_SESSION['Nom_Client'] = $_POST['Nom_Client'];
$_SESSION['Prenom_Client'] = $_POST['Prenom_Client'];
$_SESSION['Annee'] = $_POST['Annee'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Menu Général</title>
<style type="text/css">
<!--
.Style1 {font-family: Arial, Helvetica, sans-serif}
.Style2 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; }
-->
</style>
</head>

<body>
<p class="Style2">MENU GENERAL</p>
<form id="Afficher_Client" name="Afficher_Client" method="post" action="Affichage_Fiche_Client.php">
  <span class="Style1">Pour afficher un client cliquez sur </span>
  <input type="submit" name="Submit" value="AFFICHER" />
</form>
<form id="Saisie_Client" name="Saisie_Client" method="post" action="SAISIE CLIENT/Saisie_Client.php">
  <span class="Style1">Pour saisir une fiche client cliquez sur</span>
  <input name="Saisir Client" type="submit" id="Saisir Client" value="SAISIR" />
</form>
<p class="Style1"> </p>
</body>
</html>

Merci à vous pour votre aide et merci de me dire si j'ai bien assimilé ce que vous me disiez.

#12 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

OK merci, mais désolé ça ne fonctionne pas avec le $_POST['Nom_Client'] dans le deuxième formulaire.
Il me semble que le $_POST['Nom_Client'] ne peut fonctionner qu'à partir du moment où on valide avec le bouton submit, sans quoi la donnée saisie dans l'input n'est toujours pas disponible.
Deuxièmement ce n'est apparemment pas récupérable dans le deuxième formulaire, ça ne peut marcher que s'il n'y a qu'un seul formulaire mais alors il y a conflit avec le menu pour avoir deux boutons (ou plus) submit.
Je ne vois donc pas comment faire mon menu avec plusieurs formulaires et donc plusieurs submit sur la même page.
Effectivement avec les sessions ça fonctionne mais ça alourdit le menu puisqu'il me faut passer par un premier menu qui permet au premier formulaire de saisir les données, puis d'appeler un deuxième formulaire avec d'autres boutons submit (autant que de traitements à réaliser (exemple affichage client, création client, mise a jour client, suppression client, etc....).

#13 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

J'ai appliqué ce que vous dites mais le deuxième bouton submit ne s'affiche pas, car il semble que if( !empty($_POST['Nom_Client']) ) repond false, si je supprime ce test j'ai l'erreur:
Notice: Undefined index: Nom_Client in C:\wamp\www\TESTPHP\MICHEL\Nom_Client.php  on line 27
Nom Client :

Notice: Undefined index: Prenom_Client in C:\wamp\www\TESTPHP\MICHEL\Nom_Client.php on line 29
Prénom Client :

Notice: Undefined index: Annee in C:\wamp\www\TESTPHP\MICHEL\Nom_Client.php on line 31
Annee :
ce qui prouverait qu'on ne peut pas utiliser $_POST['Nom_Client']
Voici le code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Selection Nom Client</title>
</head>

<body>
<p><font face="Arial, Helvetica, sans-serif"><strong>SELECTION DU CLIENT A AFFICHER </strong></font></p>
<?php
echo '<form action="Affichage_Fiche_Client.php" name="Recherche_Client" method="post">';
echo 'Nom Client :<input type="text" name="Nom_Client" id="Nom_Client" size="50" maxlength="50">';
echo '<br>';
echo 'Prénom Client :<input type="text" name="Prenom_Client" id="Prenom_Client" size="45" maxlength="45">';
echo '<br>';
echo 'Année : <input name="Annee" type="text" id="Annee"  size="7" value=" 2010"maxlength="4">';
echo '<br>';
echo '<input type="submit" name="Afficher client" value="AFFICHER CLIENT" >';
echo '</form>';

if( !empty($_POST['Nom_Client']) )

{

  echo '<form action="SAISIE CLIENT/Saisie_Client.php" name="SAISIE CLIENT" method="post">';

  echo 'Nom Client :<input type="hidden" name="Nom_Client" size="50" maxlength="50" value="'.$_POST['Nom_Client'].'">';
  echo '<br>';
  echo 'Prénom Client :<input type="hidden" name="Prenom_Client" size="45" maxlength="45" value="'.$_POST['Prenom_Client'].'">';
  echo '<br>';
  echo 'Annee :<input type="hidden" name="Annee" size="7" maxlength="4" value="'.$_POST['Annee'].'">';
  echo '<input type="submit" name="Saisie client" value="SAISIE CLIENT" >';
  echo '</form>';

}

#14 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Merci.
J'ai essayé ce que vous dites en PHP. 9a fonctionne pour l'affichage.
Mais comment résoudre le problème des submit?
Je ne vois toujours pas comment.
Que deviennent les submit et les deux actions différentes pour appeler soit une page soit une autre ?
Dois-je garder les deux boutons avec les deux appels comme avant?
Merci de me dire également pourquoi utiliser le hidden, c'est une astuce?

#15 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Apparemment non car elles dépendent de la réponse du premier formulaire, donc je ne sais pas comment les récupérer si ce n'est par $_POST.
Or $_POST ne peut pas marcher dans le second formulaire.
D'où ma question:
Est-ce possible de les récupérer ou pas?

#16 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Avant d'envisager des sessions je voudrais savoir si je peux récupérer les valeurs dans mon deuxième formulaire de la même page de manière à n'avoir qu'un seul menu et non pas deux au minimum..

#17 Re : Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

Oui j'avais pensé aux sessions mais en fait ce que je voudrais c'est tout simplement récupérer les valeurs des nom, prénom, année dans le second formulaire de la même page.
Est-ce possible à partir de la même page?
Si j'utilise les sessions cela voudrait dire que j'aurai d'abord une page de menu général avec un formulaire (nom, prénom, année) qui appellerait un autre menu dans lequel j'aurai différent formulaires avec différents submit de différentes pages récupérant par session les valeurs nom, prénom, année.
Est-ce que je me trompe?

#18 Forum Général PHP » Demande d'aide pour utiliser des variables dans plusieurs pages » 29-06-2010 20:07:42

pitou
Réponses : 38

Bonjour à tous,
J'aurai besoin de votre aide pour m'indiquer comment procéder pour résoudre le problème suivant:
J'ai un menu général avec plusieurs formulaires, donc plusieurs bouton submit et plusieurs actions de pages à appeler.
Mon menu comprend trois variables nom, prénom, année.

J'arrive à récupérer les valeurs de ces variables avec $_POST['Nom_Client']; par exemple pour l'action correspondant au premier formulaire "afficher client".
Mais je voudrais récupérer les mêmes données dans les autres formulaires comme pour "saisie client" ou autre que je souhaite rajouter au menu (dans ce cas la méthode $_POST['Nom_Client']; ne peut pas fonctionner.
Merci de me dire comment procéder pour récupérer les données du premier formulaire dans les formulaires suivants.

Voici mon code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Selection Nom Client</title>
</head>

<body>
<p><font face="Arial, Helvetica, sans-serif"><strong>SELECTION DU CLIENT A AFFICHER </strong></font></p>
<form id="Recherche_Client" name="Recherche_Client" method="post" action="Affichage_Fiche_Client.php">  
<p>Nom Client :  
 <input name="Nom_Client" type="text" id="Nom_Client" size="50" maxlength="50" />

</p>

  <p>Prénom Client :
    <input name="Prenom_Client" type="text" id="Prenom_Client" size="45" maxlength="45" />
</p>
  <p>Année :
    <input name="Annee" type="text" id="Annee"  size="7" value=" 2010"maxlength="4" />
    </p>
  <p>
     <input type="submit" name="Afficher client" value="AFFICHER CLIENT" />
  </p>
</form>
<form action="SAISIE CLIENT/Saisie_Client.php" method="post" name="SAISIE CLIENT">
  <input type="submit" name="Saisie client" value="SAISIE CLIENT" />

</form>
<p> </p>
</body>
</html>
 

#19 Re : Forum Général PHP » Erreur de syntaxe » 18-06-2010 08:55:34

Il n'y a pas d'erreur, ça fonctionne.
Mon problème vient du refresh de mon navigateur.Je dois repartir à zero depuis le programme du formulaire si je veux que les modifications du programme soient prises en charge.
Voilà le genre de piège dans lequel je suis tombé.
Merci à tous.

#20 Re : Forum Général PHP » Erreur de syntaxe » 18-06-2010 08:55:34

Pour plus de précisions voici les autres instructions (appelant appelé)
Programme appelant contenant le formulaire:

<label>Prénom Conjoint:
  <input name="Prenom_Conjoint" type="text" id="Prenom_Conjoint" size="30" maxlength="30" />
  </label>

Programme appelé:

<label>Prénom Conjoint:
  <input name="Prenom_Conjoint" type="text" id="Prenom_Conjoint" value="<?php echo $Prenom_Conjoint ?>" size="30" maxlength="30" />
  </label>

Pareil pour E_Mail

#21 Re : Forum Général PHP » Erreur de syntaxe » 18-06-2010 08:55:34

OK Merci.
J'ai corrigé:

$Prenom_Conjoint = $_POST['Prenom_Conjoint'];
$E_Mail = $_POST['E_Mail'];

Mais maintenant j'ai l'erreur:
Notice: Undefined index: Prenom_Conjoint in C:\wamp\www\TESTPHP\MICHEL\Affichage_Client_Saisie.php  on line 19

Notice: Undefined index: E_Mail in C:\wamp\www\TESTPHP\MICHEL\Affichage_Client_Saisie.php on line 49

Qu'elle en est la raison? J'ai beau vérifier je ne vois pas l'erreur, les deux post ont bien le même nom.
Que dois-je vérifier?

#22 Forum Général PHP » Erreur de syntaxe » 18-06-2010 08:55:34

pitou
Réponses : 4

Bonjour,
Me revoici avec deux erreurs de syntaxe que je ne comprends pas:

$Prenom-Conjoint = $_POST['Prenom-Conjoint'];
 

ainsi que :

$E-Mail = $_POST['E-Mail'];
 

Merci d'avance pour votre aide.

#23 Re : Forum Général PHP » Erreur d'appel du lien » 16-06-2010 21:33:38

Ça marche, j'ai recopié le module appelant.
Mystère.

#24 Re : Forum Général PHP » Erreur d'appel du lien » 16-06-2010 21:33:38

Je ne sais pas comment faire.
Je ne connais pas l'adresse.

#25 Forum Général PHP » Erreur d'appel du lien » 16-06-2010 21:33:38

pitou
Réponses : 3

Bonjour,
J'ai récupéré un code PHP pour gérer un calendrier.
Je l'ai copié, changé les paramètres et j'ai une erreur d'appel:
Not Found

The requested URL /TESTPHP/MICHEL/pop.php was not found on this server.
voici mon code:
<html>
<head>
    <title>Test Calendrier -> Exemple</title>
</head>
<body>

<form name="test" method="post" action="#">
   
    Date de Naissance :<input type="text" name="date_naissance" readonly="readonly"/>
    <a href="#" onClick=" window.open('pop.php?frm=test&ch=date_naissance','calendrier','width=350,height=160,scrollbars=0').focus();"><img src="TEST_CALENDRIER/petit_calendrier.gif" width="23" height="16" border="0"/></a>

</form>

</body>
</html>

or le pop.php existe bien dans la même directory du serveur que mon programme..
Pouvez-vous me dire pourquoi il ne trouve pas?
Merci d'avance.

Pied de page des forums

Propulsé par FluxBB