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 :

Affichage de questionnaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Affichage de questionnaire
    Bonjour,
    J’ai besoin d’aide pour créer un questionnaire en PHP/XML. Le but serait d’enregistrer les réponses dans un fichier excel. Le fichier excel est atteignable grâce à une partie admin avec un mot de passe.
    J’arrive à afficher l’interface graphique (entête de page), le champ pour le mot de passe de l’admin (et ça, ça fonctionne) ainsi que le bouton enregistrer. Mais le questionnaire ne s’affiche pas. J’ai un programme Php dans lequel je fais appel à mon fichier XML contenant les questions et les réponses.
    On m’affiche une erreur : Notice: Undefined index: action in C:\wamp\www\questionnaire 0402\index.php on line 55.

    La ligne en question c'est la ligne $action = $_POST['action'];

    Voici les codes php et xml en question :

    XML:
    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <quest>
    <subject>QUESTIONNAIRE POUR L'ETUDE D'IMPACTS</subject>
     
    <item type="checkbox" name="q1" display="line">1. Pour  vous, quelle sont les 2 principales sources de questionnement quant à la future organisation ?
        <subitem val="q1|1">Aménagement des locaux et collectif de travail</subitem>
        <subitem val="q1|2">Temps de trajet domicile/travail</subitem>
        <subitem val="q1|3">Incertitude quant à ma future fonction</subitem>
        <subitem val="q1|4">Période de montée en charge</subitem>
        <subitem val="q1|5">Missions et activités dans la nouvelle organisation</subitem>
    </item>  
     
    <b>Aménagement des locaux et collectif de travail</b>
     
    <item type="checkbox" name="q2" display="line">2. Selon vous, quels sont les 2 principaux points sur lesquels il faut travailler dans le cadre de l’aménagement des futurs locaux :
        <subitem val="q2|1">Luminosité</subitem>
        <subitem val="q2|2">Ambiance sonore</subitem>
        <subitem val="q2|3">Ambiance thermique</subitem>
        <subitem val="q2|4">Confidentialité des espaces de travail</subitem>
        <subitem val="q2|5">Open-space</subitem>
        <subitem val="q2|6">Autre : <input type="text" /></subitem>
    </item>  
     
    <item type="checkbox" name="q3" display="line">3. Selon vous, l’organisation de la convivialité doit passer par :
        <subitem val="q3|1">Un espace de convivialité</subitem>
        <subitem val="q3|2">Un espace détente</subitem>
        <subitem val="q3|3">Un espace d’information</subitem>
        <subitem val="q3|4">L’organisation d’évènements collectifs</subitem>
        <subitem val="q3|5">Autre : <input type="text" /></subitem>
    </item>
     
    <item type="radio" name="q4" display="line">4. L’installation dans les locaux va modifier votre temps de trajet domicile / travail dans quelle proportion :
        <subitem val="q4|1">Aucun changement</subitem>
        <subitem val="q4|2">Réduction du temps de trajet</subitem>
        <subitem val="q4|3">Allongement inférieur à 20 minutes par jour</subitem>
        <subitem val="q4|4">Allongement supérieur à 20 minutes par jour</subitem>
    </item>
     
    /*... ....14 questions au total*/
    </quest>

    PHP:
    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    ****<head><!-- definition du titre de la page --><!-- ici la rurbique 1 est la rubrique techique --><title>DC</title>
    ****<link rel="stylesheet" href="css/style.css" type="text/css" /><!--link href="css/nicetitle.css" rel="stylesheet" type="text/css" /-->
    ****<link rel="bookmark" href="#contenu" title="Aller au contenu">
    ****<link rel="bookmark" href="#menu" title="Aller au menu">
    ****<img src="css/images/bibi.png">
    ****</head>
    ****<script language="JavaScript">
    ********function verif(){
    **********if (document.layers){
    ************formulaire = document.forms.quest;
    ************}
    **********else{
    ************formulaire = document.quest;
    ************}
    ********}
    ****</script>
    *
    ********<body>
    ************<div id="page2">*
    ****************<form name='Admin' method='post' action='<?php echo($_SERVER['PHP_SELF']) ?>'>
    ********************<input type="text" name="mpa" /><input type='submit' name='Admin' value='Admin'/>
    ****************</form>**
    *
    ********************<h1>Questionnaire pour l'étude d'impacts<span style="margin-left:300px;"><img src="./img/logodrrc.png" alt="quest" title="quest"/></span></h1></br></br>
    *********************
    ********************<?php
    ********************if (isset($_POST["Admin"])){
    ************************if ($_POST["mpa"]== "IMPACT2014"){
    ****************************echo '<p style="float: left;"><a href="./"><img src="./img/homee.png" alt="retour menu" title="Retourner au menu"/> Retour au menu</a><br><br>';
    ************************?>**
    ****************************<center>
    ****************************<table>******
    ********************************<tr>
    ************************************<td>
    ****************************************<b>Voir et &eacute;diter les statistiques</b></td><td><a href="./interpretation_enqeta.php"><img src="./img/valider.png" alt="Voir et Editer" title="Voir et Editer"/></a>
    ************************************</td>
    ********************************</tr>
    ****************************</table>
    ****************************</center>
    ************************<?php***
    ************************}
    ************************else{
    ****************************echo "Vous n'avez pas le bon mot de passe ....";
    ****************************echo '<p style="float: left;"><a href="./"><img src="./img/homee.png" alt="retour menu" title="Retourner au menu"/> Retour au menu</a><br><br>';
    ************************}
    ************************echo "<img src='css/images/bibi2.png'>";
    ********************}
    *************************
    ********************else{** ?>
    *********
    ********<?php********
    *********
    ********$action =* $_POST['action'];
    ********$fp = @fopen("results/Quest.csv", "r"); // ouvrir le fichier qui se situe a la racine (avec tes fichiers sources, sinon tu mets l'arboresence)
    ********set_time_limit(1000); // temps dexecution du script le plus longtemps possible ,si cette instruction n'y est pas le temps d'execution d'un script est de 30 secondes par defaut cela pose un probleme lorsque l'on doit traiter de gros fichiers comme c'est mon cas ici
    *********
    ********if($fp){
    ************$i=0;
    ************while (!feof($fp)) // tant que ce n'est pas la fin du fichier boucler**
    ************{**
    ****************$ligne = @fgets($fp, 1024);
    ****************$split=split(";",$ligne);
    *****************
    ****************$Forma[$i]=$split[0];
    ****************$DASS[$i]=$split[1];
    ****************$nbtest++;
    ****************$i++;
    ************}
    ************fclose($fp);
    ********}
    *
    ********if($action == "Enr"){
    *************
    ************$xml = simplexml_load_file("data/Quest.xml") or die ("impossible d'ouvrir le fichier");
    ************$nbrequest =* count($xml->item);
    *
    ************for($i=0;$i<$nbrequest;$i++){
    *****************
    ****************$subitems=count($xml->item[$i]->subitem);
    ****************if(isset($_POST["aff1"]) && utf8_decode($xml->item[$i]->attributes()->name) == "q1"){*****
    ********************do{
    ************************$formula.= ";";
    ************************$i++;
    ************************$subitems=count($xml->item[$i]->subitem);
    ********************}
    ********************while (utf8_decode($xml->item[$i]->attributes()->name) != "q15");
    ****************}
    *****************
    ****************if($xml->item[$i]->attributes()->type == "checkbox"){
    ********************$formula.= getval($xml->item[$i]->attributes()->name).";";
    ****************}
    *****************
    ****************if($xml->item[$i]->attributes()->type == "radio"){
    ********************$formula.= getval($xml->item[$i]->attributes()->name).";";
    ****************}
    *****************
    ****************if($xml->item[$i]->attributes()->type == "textarea"){
    ********************$zonet = urldecode(str_replace("%0D%0A","| ",getval($xml->item[$i]->attributes()->name)));
    ********************$formula.= $zonet.";";
    ****************}
    ************}
    ************$formula .="\n";
    ************$filename2 = "results/Quest.csv";
    ************$fd2 = fopen($filename2,"a");
    ************fwrite($fd2, $formula);
    ************fclose($fd2);
    ************header('Location: fin.php');
    ************exit();*
    ********}
    ********$xml = simplexml_load_file("data/Quest.xml") or die ("impossible d'ouvrir le fichier");
    ********$sujet = utf8_decode($xml->subject);
    *
    ********$formula =* "<form name='quest' method='post' onsubmit='return verif();' action='".$_SERVER['PHP_SELF']."'><table width='100%' align='center'>";
    ********$nbrequest =* count($xml->item);
    ********for($i=0;$i<$nbrequest;$i++){
    ************$subitems=count($xml->item[$i]->subitem);
    ********}
    *********
    ********$formula.= "<center><input type='hidden' name='action' value='Enr'><input type='submit' value='Enregistrer'><button type='submit' onClick='clickMonBouton();'><img src='css/images/enre.png'></button></td></tr></table></form><center>";
    ********?>
    ************<div id="home">
    ****************<table width="90%" align="center"><tr>
    ****************<td colspan="2" bgcolor="#666699" align="center">
    ****************<div id="okcourrier"><font color="#FFFFFF"><b><?php echo $sujet?></b></font></div></td></tr></table>
    ****************<?php echo $formula?>
    ************</div>
    ************<?php
    ****************}
    ************?>
    ********</div>
    ****</body>
    </html>******
    Merci d'avance

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    $_POST['action'] fait référence à un champs de formulaire qui s'appellerait "action".
    Je n'en vois pas dans le code que tu nous montres.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Du coup est-ce que ce champs de formulaire est nécessaire à l'affichage ?
    Parce que j'ai récupéré ce code de quelqu'un d'autre (un collègue qui n'est plus là) et du coup j'ai peut être laissé des trucs inutiles. Dans le code précédent, il fallait s'identifier avant de passer au questionnaire. Ici, je veux que le questionnaire s'affiche directement sur la première page.

Discussions similaires

  1. Questionnaire avec affichage immédiat du score
    Par artxtra dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/09/2011, 08h05
  2. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  3. Affichage de documents PDF
    Par Dajon dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/10/2002, 11h36
  4. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43
  5. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 21h00

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