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 :

passer des données a une autre page php


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut passer des données a une autre page php
    je génére des question a partir d'un fichier php genere.php

    j'ai besoin de savoir quels sont les questions genéré dans mon questionnaire avec ce génére.php, elle ont des num, je voudrai passer tous ces num a une nouvelle page php,pour que celles ci une fois que l'enseignant l'ai décidé (avec un bouton submit)soit entré dans ma table , comment faire??

    Je ne sais pas si j'ai été claire
    Faites moi confiance... je suis un membre éclairé

  2. #2
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Walut!

    Pour chaque question, tu crées un champ de type hidden dont le nom est composé d'une partie fixe, par exemple "num" et d'une partie dynamique, par exemple le num en lui-même. Dans ce champ, tu stockes le num de chaque question.

    Dans la second page, tu balaies le tableau superglobal $_POST en cherchant tous les champs dont le nom contient "num"

    Yan
    Balayeur de champs
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  3. #3
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    j'ai cherché sur google pour ses champ de type hidden:
    <INPUT type=hidden name=num value=1>

    c'est bien ca que tu proposes.
    Faites moi confiance... je suis un membre éclairé

  4. #4
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Plus ou moins 8)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<input type=hidden name="num' . $num . '" value="'. $num . '">'
    On présumons que ceci fait partie d'une boucle et que $num varie à chaque boucle. Tu auras donc une série de champs de type hidden dont chacun aura un nom unique puisque ce nom sera fonction de la valeur de $num.


    Dans la seconde page, il te sera facile de retrouver tous ces champs puisque chacun d'eux à un nom qui commence par "num".

    Yan
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  5. #5
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    euh il est un peu trop caché , tellement bien qu'il le voit , voici ce que j'ai fait pour récupérer le nombre de questions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //on fait un champ hidden pour récupérer le nombre de questions
    $nombreques=$_GET["nombre"];
    echo "<INPUT type=\"hidden\" name=\"nombre\" value=\"$nombreques\">";
    et puis ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $i=0;
    while($i<$_POST["nombre"])
    j'ai du faire une betise mais ou
    Faites moi confiance... je suis un membre éclairé

  6. #6
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Ce n'est pas très clair si le code que tu me montres est dans la première page ou dans la seconde.

    Je t'ai expliqué une façon possible de le faire, mais je ne peux le coder à ta place parce que je suis une quiche en PHP (en ASP, j't'aurais torché ça en cinq secondes, mais bon...)

    Yan
    Quiche lorraine[/code]
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  7. #7
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    la première partie de code est dans le premier fichier et la deuxième dans le second je récupère avec un POST, mais il semble ne pas le connaitre car il me sort l'erreur suivante:
    Notice: Undefined index: nombre in c:\program files\easyphp1-8\www\creationqcm.php on line 24
    Faites moi confiance... je suis un membre éclairé

  8. #8
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    montre nous un peu de code questionneuse se sera plus simple pour te montrer tes erreurs.

  9. #9
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    Alors du code en voila mais pitié de l'aide

    voici pour enseignant:

    Code : 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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> Apprendre la géométrie</TITLE>
     
    	<link rel="stylesheet" type="text/css" href="charte.css">
    <SCRIPT LANGUAGE="JavaScript">
    		<!--
     
    		function valider(nombre,nom) 
               {
    			if (nombre=="") 
    			{
    			alert("Entrez votre nombre de questions"); 
    			}
    			else{
    				if(nombre*0 !=0)
    				{
    				alert("Entrer un nombre");
    				}
    				else{
    					if(nombre>30)
    					{
    					alert("Entrer un nombre inférieur à 30");
    					}
    					else{
    						if (nom=="") 
    						{
    		      			alert("Entrez un nom pour votre QCM"); 
    		    				} 
    						else
          	            		{
    						next();
     
    						}
    			   		} 
    				}
    			}
    	     }
    		function next()
    		{
    		document.forms[0].action="genereQCM.php";
    		}
     
    		//-->
    		</SCRIPT>
     
     
    </HEAD>
    <BODY>
         <h1> Enseignant </h1>
     
    	<form method="get">
    <br>
     
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr><td align="center" style="font-family: verdana, times, sans-serif ;color:black;"><h3>Générer votre QCM. </h3></td></tr>
    <tr><td><br><br></td></tr>
    <tr><td  align="center" style="font-family: verdana, times, sans-serif ; color: black;">Nombre de questions*
    <input type="text" name="nombre" size="10" maxlength="20" >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp</td></tr>
    <tr><td><h2> <br></h2></td></tr>
    <tr><td  align="center" style="font-family: verdana, times, sans-serif ; color: black; ">Nom du QCM 
    <input type="text" name="nom" size="8" maxlength="50"> </td></tr>
    <tr><td><h2> <br></h2></td></tr>
    <tr><td align="center">&nbsp&nbsp<INPUT TYPE="submit" VALUE="Générer le QCM" size='20' onClick="valider(document.forms[0].nombre.value,document.forms[0].nom.value)"></td></tr>
    </tr></tr><tr>
    </tr>
    </table>
    <br><br><br>
    <h6>*Votre QCM pourra avoir 30 questions au maximum.</h6>
    </form>
     
     
    </BODY>
    </HTML>
    voici ce que j'ai fait pour ma page genereQCM:

    Code : 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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    <html>
    <body>
         <h1> Génération du QCM </h1>
     
    <link rel="stylesheet" type="text/css" href="charteQCM.css">
    <SCRIPT LANGUAGE="JavaScript">
    		<!--
    		function next()
    		{
    		document.forms[0].action="creationQCM.php";
    		}
    		//-->
    		</SCRIPT>
     
    <?php
    $db=mysql_connect("127.0.0.1","root","");
    mysql_select_db("bdqcm",$db);
     
    $i=0;
    //on fait un champ hidden pour récupérer le nombre de questions
    $nombreques=$_GET["nombre"];
    echo "<form method=\"get\">";
    echo "<INPUT type=\"hidden\" name=\"nombre\" value=$nombreques>";
     
    //on fait un champ hidden pour récupérer le nombre aléatoire
     
    while ($i<$_GET["nombre"]){//ligne 27
    $i++;
    $nbre_aleatoire = rand(1, $_GET["nombre"]); 
     
    $result=mysql_query("SELECT * FROM questions WHERE questions.num='".$nbre_aleatoire ."'");
     
    $lignes=mysql_fetch_row($result);
    	printf("%s: %s <br>",$lignes[2],$i);
    	$numero=$nbre_aleatoire;
    	$sql="SELECT reponses.texte FROM reponses WHERE reponses.question='".$numero."'";
    	//on fait des champ hidden pour récupérer les questions
    	echo "<INPUT type=\"hidden\" name=\"num+$i\" value=\"$nbre_aleatoire\">";
     
     
     
    // echo $sql;
    	// echo "<br>";
    	$resultat=mysql_query($sql, $db);
    	$j=0;
    	while ($lignes2=mysql_fetch_row($resultat)){
    		$j++;
    		// le num et le texte on le prend ici.
    		//echo "<input type = \"checkbox\" name = \"reponse\">";
    		echo "<input type =\"radio\" name= \"q+$i\" value=\"reponse \">";
    		printf("%s : %s<br>", $j, $lignes2[0]);	
    	}
    	echo "<hr>";
    	}
    echo "</form>";
     
    ?>
    <br>
     
    <form method="get">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr><td align="center">&nbsp&nbsp
    <INPUT TYPE="submit" VALUE="Créer ce QCM" size='20' onClick="next()">
    </td></tr></table>
    <br><br><br>
    </form>
    </body>
    </html>
    Et voici ce que j'ai fait pour ma page création:

    Code : 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
     
    <html>
    <body>
         <h1> Création du QCM </h1>
    <link rel="stylesheet" type="text/css" href="charteQCM.css">
     
    <SCRIPT LANGUAGE="JavaScript">
    		<!--
    		function next()
    		{
    		document.forms[0].action="activation.php";
    		}
    		//-->
    		</SCRIPT>
     
    <br><br>
    <h3>Votre QCM a été crée.</h3> 
    <br><h3>Félicitations!</h3> 
     
    <h3>Pour l'activer, entrez dans la page "activation de QCM".</h3>
    <?php
    $db=mysql_connect("127.0.0.1","root","");
    mysql_select_db("bdqcm",$db);
    $i=0;
    while($i<$_GET["nombre"])//ligne 24
    {
    $i++;
    printf($_GET["num+$i"]);
    }
     
    ?>
     
    <br>
    <form method="get">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr><td align="center">&nbsp&nbsp
    <INPUT TYPE="submit" VALUE="accéder à la page activation" size='20' onClick="next()">
    </td></tr></table>
    <br><br><br>
    </form>
     
    </body>
    </html>
    et voici les erruer qu'il me sort:

    Notice: Undefined index: nombre in c:\program files\easyphp1-8\www\genereqcm.php on line 21


    Notice: Undefined index: nombre in c:\program files\easyphp1-8\www\genereqcm.php on line 27


    j'en ai marrrreeeeeuuuuuuuuuuuuuuuuuuuuhhhhhhhhhhhhhhhhh
    Faites moi confiance... je suis un membre éclairé

  10. #10
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Un peu la sa fait beaucoup

    Bon sinon pour te répondre , c'est juste parceque la variable $_GET["nombre"] n'est pas déclarée et assigné au préalable.

    En faits qd tu essaies d'accèder au contenu d'une variable, tu demandes à l'ordi d'aller cherche un bloc mémoire associé à cette variable.

    Qd il ne trouve pas le bloc associé il se plaint (Undefined index: nombre)

    Donc pour résoudre ce problème il faudrait déclarée et assigné (associé un bloc mémoire) la variable $_GET["nombre"] avant de vouloir accéder à son contenu.

    Mais la le problème est un peu plus subtile, parce que notre variable $_GET["nombre"] ce n'est pas nous qui sommes censés la déclaré et l'assigné. C'est PHP qui réalise cela.

    Pour y palier l'idée est de déclarer une variable que l'on vas toujours déclaré en début de script. Dans cette variable vas y copier le contenu de $_GET["nombre"] ou alors, si elle n'existe pas une valeur par défaut.

    Ainsi dans le reste du script nous n'utiliserons pas $_GET["nombre"], mais la variable que l'on sait sûr.

    Après cette tentative d'explications ecolières, le code :


    Code : 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
     
    // Le debut du script
     
    //On déclare et assignes une variable sûr
     $nombreques = 0;
     
    // On demande à savoir si la variable $_GET["nombre"] existe
    if( isset($_GET["nombre"]) == true )
    {
          // Oui elle existe on copie son contenu dans notre variable sur
          $nombreques=$_GET["nombre"];
    }
     
     
    // Dans tout le reste du code nous utiliserons $nombreques pour accéder au contenu de $_GET["nombre"].
    // Il ne faudra pas oublier de prendre en compte le cas ou $nombreques = 0
    Voila en esperant que cela t'aides à y voir plus clair

    bye

  11. #11
    Membre habitué Avatar de questionneuse
    Inscrit en
    Décembre 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 319
    Points : 127
    Points
    127
    Par défaut
    oui merci ca m'a aidé
    Faites moi confiance... je suis un membre éclairé

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

Discussions similaires

  1. récupérer des données d'une autre page
    Par info3licen dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2009, 19h56
  2. Passer des variables a une autre page
    Par Bydouille dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/10/2007, 22h59
  3. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 09h08
  4. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 09h06
  5. Réponses: 4
    Dernier message: 01/11/2005, 14h35

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