PHP : Variable globale dans un Switch
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

PHP : Variable globale dans un Switch



  1. #1
    narqoarts

    PHP : Variable globale dans un Switch


    ------

    Plop les gens !
    Voilà en tant que débutant en PHP j'ai une erreur que je n'arrive malheureusement pas à resoudre tout seul ..
    Alors voila mon problème : j'ai essayer de créer une variable global pour pouvoir l'utiliser dans mon switch et enfin pouvoir faire un echo de tout ça.
    Malheureusement lors de l'exécution la variable ne s'affiche pas ...

    Donc voila un peu mon code avec la method POST qu'y est utilisé pour récupérer les données via un formulaie HTML basique.
    Donc oui $code ( ma variable globale) est bien défini en top-level du fichier :
    Capture.JPG

    Après voila le premier retour que j'ai lorsque j'accède à la page :
    ( PS : DEE est la valeur de $code ) !
    Capture2.JPG

    Et enfin lorsque je clic sur envoyer ( j'ai fais une form avec comme action le nom de ce même fichier php et une méthode POST ) , j'obtiens ça :
    Capture3.JPG

    Merci de répondre vous les génies du php

    -----

  2. #2
    JPL
    Responsable des forums

    Re : PHP : Variable globale dans un Switch

    Pourrais-tu utiliser la balise Code pour poster ton code comme texte dans le message ?
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    cherbe

    Re : PHP : Variable globale dans un Switch

    Bonsoir
    Je ne comprends rien à la première ligne. Tu es sûr de cette syntaxe que je n'ai jamais vue ?
    Je ne vois pas l'intérêt de la 2e ligne mais passons.

    Pourquoi un switch avec un seul case et qu'est-ce qu'il teste ?

  4. #4
    narqoarts

    Re : PHP : Variable globale dans un Switch

    <!doctype html>
    <html lang="fr">
    <head>
    <meta charset="utf-8">
    <title>DOE TEST</title>
    <?php
    $code = $_POST['code'];
    ?>

    </head>
    <body>
    <script>
    function getSelectedFromTextarea(){
    text=document.activeElement.va lue;
    selText=text.substring(documen t.activeElement.selectionStart , document.activeElement.selecti onEnd)
    return selText;
    }
    </script>
    <h1> Cr&eacute;ation d'un DOE </h1>
    <form action="script.php" method="POST">

    <label>Recupérer la photo </label>
    <input type="file" name="browse" /><br><br>

    <label>NOMENCLATURE : </label>
    <select name="equips" size="1">
    <option value="">----- INDOOR -----
    <option value="1">_Local_BaieRadio_Emp lacement_VueGenerale
    <option value="2">_Local_BaieRadio_Emp lacement_TypeReseau_Précision des bandes de fréquences
    <option value="3">_Local_BaieRadio_Emp lacement_BaieOuverte_TypeResea u_Précision des bandes de fréquences
    <option value="4">_Local_BaieRadio_Emp lacement_AncienneBaie
    <option value="5">_Local_BaieRadio_Sup port_TypeReseau_Précision des bandes de fréquences
    <option value="6">_Alimentation_DJ_Bai eAlcatel_TypeReseau_Précision des bandes de fréquences
    <option value="7">_Alimentation_Genera l_BaieAlcatel
    <option value="8">_Local_Repartiteur_A larmes_Wago
    <option value="9">_Local_Repartiteur_T rans_General
    <option value="10">_Local_Repartiteur_ Trans_Alarmes
    <option value="11">_Local_BaieRaccorde ment_Trans_Alarmes_TypeReseau_ Précision des bandes de fréquences
    <option value="12">_Local_BaieRaccorde ment_Modem_Trans_TypeRéseau_Pr écision des bandes de fréquences
    <option value="13">_ElementRadio_RRH_T ypeReseau_Précision des bandes de fréquences_Swap
    <option value="14">_AdaptateurRadio_SB _RRH_TypeReseau_Précision des bandes de fréquences_Swap
    <option value="15">_Cheminement_Bretel les_Basses_CoteCoaxiaux_Précis ion des bandes de fréquences
    <option value="16">_Cheminement_Bretel les_Basses_CoteBaie_Précision des bandes de fréquences
    <option value="">----- OUTDOOR -----
    <option value="17">_ZoneTech_BaieRadio _Emplacement_VueGenerale
    <option value="18">_ZoneTech_BaieRadio _Emplacement_BaieOuverte_TypeR eseau_Précision des bandes de fréquences
    <option value="19">_ZoneTech_BaieRadio _Emplacement_AncienneBaie_Type Reseau_Précision des bandes de fréquences
    <option value="20">_ZoneTech_SupportBa ie_Emplacement_TypeReseau_Préc ision des bandes de fréquences
    <option value="21">_ZoneTech_CoffretOu tdoor_Trans_General
    <option value="22">_ZoneTech_CoffretOu tdoor_Trans_Modem_TypeReseau_P récision des bandes de fréquences
    <option value="23">_ZoneTech_Trans_Ala rmes_TypeReseau_Précision des bandes de fréquences
    <option value="24">_ZoneTech_CoffretOu tdoor_NRJ_General
    <option value="25">_ZoneTech_CoffretOu tdoor_NRJ_DJ_TypeReseau_Précis ion des bandes de fréquences
    <option value="26">_ZoneTech_CoffretOu tdoor_NRJ_PresseEtoupe
    <option value="27">_ZoneTech_CoffretOu tdoor_Alarmes_Wago
    <option value="28">_ElementRadio_RRH_T ypeReseau_Précision des bandes de fréquences_Swap
    <option value="29">_AdaptateurRadio_SB _RRH_TypeReseau_Précision des bandes de fréquences_Swap(RRH1800 HW)
    <option value="30">_Cheminement_Bretel les_Basses_CoteCoaxiaux_Précis ion des bandes de fréquences
    <option value="31">_Cheminement_Bretel les_Basses_CoteBaie_Précision des bandes de fréquences
    <option value="32">_Redresseur_4_Swap
    </select>
    <br><br>
    <input type="submit" value="Envoyer" >
    <input type="hidden" value="$_POST['code']">
    </form>
    <?php

    $filesend = $_POST['filesend'];
    $rb = $_POST['rb'];


    $OK = isset($_POST['OK']) ? $_POST['OK'] : '';
    if (isset($OK))
    {
    // On recupère le choix
    $choix=$_POST['equips'];
    }
    echo "<pre><b>Avant le bouton :</b><br>";
    echo "choix : ".$choix."<br>";
    echo "code : ".$code."<br>";
    echo "</pre>";

    echo '<pre>Test de POST ET GLOBAL : <br>';
    echo 'post :<br>';
    var_dump($_POST);
    echo 'globals :<br>';
    var_dump($GLOBALS);
    echo'</pre>';
    echo "<hr>";

    switch ($choix) {
    case 1:
    echo " <b>Apres le bouton :</b><br><pre>";
    echo "choix : ".$choix."<br>";
    echo "code : ".$code."<br>";
    echo "CA ON SEN FOU : _Local_BaieRadio_Emplacement_V ueGenerale<br>";
    echo "</pre>";

    echo '<pre>Test de POST ET GLOBAL : <br>';
    echo 'post :<br>';
    var_dump($_POST);
    echo 'globals :<br>';
    var_dump($GLOBALS);
    echo'</pre>';
    break;
    case 2:
    echo "_Local_BaieRadio_Emplacement_ TypeReseau_Précision des bandes de fréquences";
    break;
    case 3:
    echo "_Local_BaieRadio_Emplacement_ BaieOuverte_TypeReseau_Précisi on des bandes de fréquences";
    break;
    case 4:
    echo "_Local_BaieRadio_Emplacement_ AncienneBaie";
    break;
    case 5:
    echo "_Local_BaieRadio_Support_Type Reseau_Précision des bandes de fréquences";
    break;
    case 6:
    echo "_Alimentation_DJ_BaieAlcatel_ TypeReseau_Précision des bandes de fréquences";
    break;
    case 7:
    echo "_Alimentation_General_BaieAlc atel";
    break;
    case 8:
    echo "_Local_Repartiteur_Alarmes_Wa go";
    break;
    case 9:
    echo "_Local_Repartiteur_Trans_Gene ral";
    break;
    case 10:
    echo "_Local_Repartiteur_Trans_Alar mes";
    break;
    case 11:
    echo "_Local_BaieRaccordement_Trans _Alarmes_TypeReseau_Précision des bandes de fréquences";
    break;
    case 12:
    echo "_Local_BaieRaccordement_Modem _Trans_TypeRéseau_Précision des bandes de fréquences";
    break;
    case 13:
    echo "_ElementRadio_RRH_TypeReseau_ Précision des bandes de fréquences_Swap";
    break;
    case 14:
    echo "_AdaptateurRadio_SB_RRH_TypeR eseau_Précision des bandes de fréquences_Swap";
    break;
    case 15:
    echo "_Cheminement_Bretelles_Basses _CoteCoaxiaux_Précision des bandes de fréquences";
    break;
    case 16:
    echo "_Cheminement_Bretelles_Basses _CoteBaie_Précision des bandes de fréquences";
    break;
    case 17:
    echo "_ZoneTech_BaieRadio_Emplaceme nt_VueGenerale";
    break;
    case 18:
    echo "_ZoneTech_BaieRadio_Emplaceme nt_BaieOuverte_TypeReseau_Préc ision des bandes de fréquences";
    break;
    case 19:
    echo "_ZoneTech_BaieRadio_Emplaceme nt_AncienneBaie_TypeReseau_Pré cision des bandes de fréquences";
    break;
    case 20:
    echo "_ZoneTech_SupportBaie_Emplace ment_TypeReseau_Précision des bandes de fréquences";
    break;
    case 21:
    echo "_ZoneTech_CoffretOutdoor_Tran s_General";
    break;
    case 22:
    echo "_ZoneTech_CoffretOutdoor_Tran s_Modem_TypeReseau_Précision des bandes de fréquences";
    break;
    case 23:
    echo "_ZoneTech_Trans_Alarmes_TypeR eseau_Précision des bandes de fréquences";
    break;
    case 24:
    echo "_ZoneTech_CoffretOutdoor_NRJ_ General ";
    break;
    case 25:
    echo "_ZoneTech_CoffretOutdoor_NRJ_ DJ_TypeReseau_Précision des bandes de fréquences";
    break;
    case 26:
    echo "_ZoneTech_CoffretOutdoor_NRJ_ PresseEtoupe ";
    break;
    case 27:
    echo "_ZoneTech_CoffretOutdoor_Alar mes_Wago";
    break;
    case 28:
    echo "_ElementRadio_RRH_TypeReseau_ Précision des bandes de fréquences_Swap";
    break;
    case 29:
    echo "_AdaptateurRadio_SB_RRH_TypeR eseau_Précision des bandes de fréquences_Swap(RRH1800 HW)";
    break;
    case 30:
    echo "_Cheminement_Bretelles_Basses _CoteCoaxiaux_Précision des bandes de fréquences";
    break;
    case 31:
    echo "_Cheminement_Bretelles_Basses _CoteBaie_Précision des bandes de fréquences";
    break;
    case 32:
    echo "_Redresseur_4_Swap";
    break;
    }
    ?>
    <br><br>

    </body>
    </html>


    Voila mon code php qui arrive apres un formulaire basique HTML :
    Voici les retour que j'obtiens :

    Avant de d'appuyer sur ENVOYER ( bouton du formulaire du fichier php ) :

    avbut.JPG

    Apres appuyer sur ENVOYER :

    aprbut1.JPG
    aprbut2.JPG

  5. A voir en vidéo sur Futura
  6. #5
    cherbe

    Re : PHP : Variable globale dans un Switch

    C'est cette ligne PHP qui est mystérieuse :
    Code:
    $OK = isset($_POST['OK']) ? $_POST['OK'] : '';
    Je ne connais pas cette syntaxe et elle m'étonne beaucoup. Quelles sont tes références à ce sujet ?
    Si tu ne réponds pas aux questions, il sera difficile de t'aider !


    Sinon, il y a d'autres bizarreries dans ton code comme cette fonction Javascript "getSelectedFromTextarea" qui n'est jamais appelée.
    Que fait-elle ici ?

  7. #6
    cherbe

    Re : PHP : Variable globale dans un Switch

    Citation Envoyé par cherbe Voir le message
    C'est cette ligne PHP qui est mystérieuse :
    Code:
    $OK = isset($_POST['OK']) ? $_POST['OK'] : '';
    Après vérification, c'est bien ce qu'il me semblait. Cette ligne n'a aucun sens.
    Tu écris littéralement : $OK = la variable $_POST['OK'] existe et je la créé sinon $_POST['OK'] est vide.
    Déjà, ça ne veut rien dire et de plus, on ne créé jamais une variable $_POST. Elle est héritée d'un formulaire ou elle n'est pas !
    Il faudrait écrire :
    Code:
    if(isset($_POST['OK']) and !empty($_POST['OK']) // (si elle existe et si elle n'est pas vide)
         {
         $OK=$_POST['OK'];
         }
    else
         {
          $OK='';
         }

Discussions similaires

  1. python : variable globale dans des class
    Par docEmmettBrown dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 25/05/2015, 21h29
  2. Est ce que l'intrication est globale dans l'univers ?
    Par extrazlove dans le forum Archives
    Réponses: 21
    Dernier message: 29/08/2014, 14h42
  3. PIC18F interuption et variable globale
    Par manuj dans le forum Électronique
    Réponses: 7
    Dernier message: 07/08/2012, 15h04
  4. langage C : problème avec variable globale et scanf
    Par invitedba13d1f dans le forum Logiciel - Software - Open Source
    Réponses: 18
    Dernier message: 21/06/2009, 12h55
  5. matlab variable globale
    Par invitea255964f dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 04/06/2009, 07h37