IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

variable PHP à la place de littéral dans retour formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut variable PHP à la place de littéral dans retour formulaire
    Bonsoir,

    je manipule le contenu d'un formulaire de méthode post. Si le nom du champ à récupérer est du littéral, c'est facile (du type $_POST['test']), mais si le nom du champ est contenu dans une variable (par exemple issue d'une bdd), comment faire ? J'ai testé un truc très simple, mais qui marche pas : $_POST['$test'] (Et je n'ai pas d'idée de mots-clé pour faire une recherche qui me donnerait une réponse).

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    Merci pour cette réponse ultra-rapide

    EDIT : pour la petite histoire, le fait de mettre les infos en bdd, ça complique méchamment le code : la seule ligne if (empty($_POST['ausc_vasc'])) $sortie=1; est devenue
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $sql = 'SELECT id_consultation_type FROM `consultation_type` where titre_consultation_type="médecin";';//trouver ds consultation_type l'id du médecin
    $prep = $connexion->prepare($sql);
    $prep->execute();
    $res = $prep->fetch(); 
     
    $sql='SELECT id_question from `consultation_type_question` WHERE id_consultation_type=:id_consultation_type;'; /* trouver ds consultation_type_question
    la liste des id de questions correspondant à l'id du médecin */
    $prep = $connexion->prepare($sql);
    $prep->bindValue(':id_consultation_type', $res->id_consultation_type, PDO::PARAM_INT );
    $prep->execute();
     
     
    while($id_question = $prep->fetch(PDO::FETCH_OBJ)) 
    		{
    		$sql="SELECT question_html FROM `questions` WHERE id_question=:id_question";// trouver ds question la question correspondant à l'id
    		$prep = $connexion->prepare($sql);
    		$prep->bindValue(':id_question', $id_question->id_question, PDO::PARAM_STR );
    		$prep->execute();
     
    		$res=$prep->fetch(PDO::FETCH_OBJ);
    		$question_html= $res->question_html;
     
    		if (empty($_POST[$question_html])) { $sortie=1; continue; }
    		}
    if ($sortie) echo "sortie"; else "pas sortie";

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut utiliser des jointures :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT question_html
    FROM `consultation_type_question`  ctq
    JOIN `consultation_type` ct ON ct.id_consultation_type=ctq.id_consultation_type
    JOIN questions q ON q.id_question = ctq.id_question
    WHERE titre_consultation_type="médecin"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    Ca m'en bouche un coin : faire tenir en 5 lignes ce qui m'en prend 25 ! je débarque car bien sûr, j'ai souvent vu utilisées des jointures, mais j'avais aucune idée de ce que c'était : très puissant.

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    En m'inspirant du code que tu m'as donné hier (pas trouvé de tuto m'expliquant clairement les jointures), j'ai remplacé un autre code qui ressemble fortement à celui d'hier :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <form id="myform" method="post" action="<?php echo "action_".basename(__FILE__); ?>">
     
    <?php
    try {
    	echo "nom du patient : ".$_SESSION['patient_sel']."<br/><br/>";
    	$connexion=connect();
    // saisie de la date de consultation
    ?>	
    	<label for="date-consult">Date de consultation : </label> <input id="date-consult" type="text" name="date_consultation" id="datepicker"/></label><br/>
    <?php	
     
    	$sql = 'SELECT id_consultation_type FROM `consultation_type` where titre_consultation_type="médecin";';//trouver ds consultation_type l'id du médecin
    	$prep = $connexion->prepare($sql);
    	$prep->execute();
    	$res = $prep->fetch(); 
     
    	$sql='SELECT id_question from `consultation_type_question` WHERE id_consultation_type=:id_consultation_type;'; /* trouver ds consultation_type_question
    	la liste des id de questions correspondant à l'id du médecin */
    	$prep = $connexion->prepare($sql);
    	$prep->bindValue(':id_consultation_type', $res->id_consultation_type, PDO::PARAM_INT );
    	$prep->execute();
     
    	$sql="SELECT question,question_html FROM `questions` WHERE id_question=:id_question";// trouver ds question la question correspondant à l'id
    	$prep = $connexion->prepare($sql);
    	$prep->bindValue(':id_question', $id_question->id_question, PDO::PARAM_STR );
    	$prep->execute();
     
    	$res=$prep->fetch(PDO::FETCH_OBJ);
    	$question_html= $res->question_html;
    	?>
    	<label for="non-fait">Non fait : </label> <input id="non-fait" type="radio" name="fait" value="0"></label><br/>
    	<label for="fait">fait : </label> <input id="fait"  type="radio" name="fait" value="1"></label><br/>
    	<label for="question"><?php echo $res->question; ?> : </label> <input id="question" type="text" name="<?php echo $res->question_html;?>" size="20"></label><br/>
    	<input type="submit" value="envoyer"/>
    	</form>
    par
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <form id="myform" method="post" action="<?php echo "action_".basename(__FILE__); ?>">
     
     
    <?php
    try {
    	echo "nom du patient : ".$_SESSION['patient_sel']."<br/><br/>";
    	$connexion=connect();
    // saisie de la date de consultation
    ?>	
    	<label for="date-consult">Date de consultation : </label> <input id="date-consult" type="text" name="date_consultation" id="datepicker"/></label><br/>
    <?php	
     
    	$sql = 'SELECT question,question_html
    FROM `consultation_type` t1
    JOIN `consultation_type_question` t2 ON t1.id_consultation_type=t2.id_consultation_type
    JOIN questions t3 ON t3.id_question=t2.id_question
    WHERE titre_consultation_type="médecin"';
    	$prep = $connexion->prepare($sql);
    	$prep->execute();
    	$res = $prep->fetch(); 
     
    		?>
    	<label for="non-fait">Non fait : </label> <input id="non-fait" type="radio" name="fait" value="0"></label><br/>
    	<label for="fait">fait : </label> <input id="fait"  type="radio" name="fait" value="1"></label><br/>
    	<label for="question"><?php echo $res->question; ?> : </label> <input id="question" type="text" name="<?php echo $res->question_html;?>" size="20"></label><br/>
    	<input type="submit" value="envoyer"/>
    	</form>
    OK, faire une requête préparée n'a plus aucun intérêt, mais comment faire si le code initial avait été :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <form id="myform" method="post" action="<?php echo "action_".basename(__FILE__); ?>">
     
     
    <?php
    try {
    	echo "nom du patient : ".$_SESSION['patient_sel']."<br/><br/>";
    	$connexion=connect();
    // saisie de la date de consultation
    ?>	
    	<label for="date-consult">Date de consultation : </label> <input id="date-consult" type="text" name="date_consultation" id="datepicker"/></label><br/>
    <?php	
     
    	$sql = 'SELECT id_consultation_type FROM `consultation_type` where titre_consultation_type="médecin";';//trouver ds consultation_type l'id du médecin
    	$prep = $connexion->prepare($sql);
    	$prep->execute();
    	$res = $prep->fetch(); 
     
    	$sql='SELECT id_question from `consultation_type_question` WHERE id_consultation_type=:id_consultation_type;'; /* trouver ds consultation_type_question
    	la liste des id de questions correspondant à l'id du médecin */
    	$prep = $connexion->prepare($sql);
    	$prep->bindValue(':id_consultation_type', $res->id_consultation_type, PDO::PARAM_INT );
    	$prep->execute();
     
    	while($id_question = $prep->fetch(PDO::FETCH_OBJ)) 
    		{
    		$sql="SELECT question,question_html FROM `questions` WHERE id_question=:id_question";// trouver ds question la question correspondant à l'id
    		$prep = $connexion->prepare($sql);
    		$prep->bindValue(':id_question', $id_question->id_question, PDO::PARAM_STR );
    		$prep->execute();
     
    		$res=$prep->fetch(PDO::FETCH_OBJ);
    		$question_html= $res->question_html;
    		?>
    	        <label for="non-fait">Non fait : </label> <input id="non-fait" type="radio" name="fait" value="0"></label><br/>
    	        <label for="fait">fait : </label> <input id="fait"  type="radio" name="fait" value="1"></label><br/>
    	        <label for="question"><?php echo $res->question; ?> : </label> <input id="question" type="text" name="<?php echo $res->question_html;?>" size="20"></label><br/>
     
    <?php				
    		}	
    ?>  
     
    <input type="submit" value="envoyer"/>
    </form>
    (avec la boucle en plus ?)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. valeur de variable a la place du nom dans document.
    Par keaton7 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/01/2009, 11h37
  2. Réponses: 2
    Dernier message: 05/05/2008, 17h25
  3. [AJAX] Retour AJAX dans variable PHP
    Par mulot49 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/06/2007, 13h00
  4. Utiliser la valeur d'un input dans une variable php
    Par megane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 16h02
  5. [PHP-JS] Problème de variable PHP dans un script JS
    Par soad029 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2005, 22h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo