Variables globales
Marie53000
-
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
NHenry Messages postés 15219 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Environnement utilises : php , mysql, ajax
Objectif : Définir un code unique (codification ) à plusieurs chiffres pour un article.
Dans un formulaire avec un menu en cascade ( fait en JS, php et ajax) qui me permet de sélectionner une famille, puis sous-famille, puis une caractéristique de la sous famille je définis les 3 premiers chiffres de mon code.
En cliquant sur un bouton Save je valide cette sélection et les trois premiers chiffres du code sont créés.
Mon problème est le suivant :
Comment récupérer dans ma page principale ces 3 chiffres pour continuer la création du code et saisir différentes informations qui seront ensuite exploitées pour mettre à jour une base Mysql de liste des articles.
J'ai utilisé une variable de Session mais cela ne marche pas.
Quelqu'un a-t-il une idée?
Code procédure principale
Code procédure où le code est élaboré
Merci d'avance
Environnement utilises : php , mysql, ajax
Objectif : Définir un code unique (codification ) à plusieurs chiffres pour un article.
Dans un formulaire avec un menu en cascade ( fait en JS, php et ajax) qui me permet de sélectionner une famille, puis sous-famille, puis une caractéristique de la sous famille je définis les 3 premiers chiffres de mon code.
En cliquant sur un bouton Save je valide cette sélection et les trois premiers chiffres du code sont créés.
Mon problème est le suivant :
Comment récupérer dans ma page principale ces 3 chiffres pour continuer la création du code et saisir différentes informations qui seront ensuite exploitées pour mettre à jour une base Mysql de liste des articles.
J'ai utilisé une variable de Session mais cela ne marche pas.
Quelqu'un a-t-il une idée?
Code procédure principale
<?php session_start() ; ............ $_SESSION['mavariable'] = 'Y' ; ?> <!DOCTYPE HTML> <html> <head> <meta name="description" content="Declare a new product in the database."/> <title>New Article </title> <script type="text/javascript" src="include/autocomplete/jquery.js"></script> <script type="text/javascript" src="include/autocomplete/jquery.autocomplete.js"></script> <link rel="stylesheet" type="text/css" href="include/autocomplete/jquery.autocomplete.css" /> </head> <body> <div id="container"> <div id="body"> <div class="mhead"><h2><b>Codification - Selection of parameters</b></h2></div> <form id="savecascade" javascript="false"> <div id="dropdowns"> <div id="center" class="cascade"> <?php $famquery = "SELECT DISTINCT (f_name), f_code FROM .......... ORDER BY f_code"; $queryfamilies = mysqli_query($connect_msqli, $famquery); ?> <label>Family: <select name="family" id = "drop1"> <option value="">Please Select</option> <?php while ($rs = mysqli_fetch_array($queryfamilies)) { ?> <option value="<?php echo $rs["f_code"]; ?>"><?php echo $rs["f_name"]; ?></option> <?php } ?> </select> </label> </div> <div class="cascade" id="subfamily"></div> <div id="sfvariant" class="cascade"></div> </div> <button id="save" class="button_example">Save Data</button> <p> <?php $codef = $code; echo"RES".$codef; // test si utilisation variable session if(isset($_SESSION['mavariable'])) echo 'La variable "variable" existe et vaut: ' . $_SESSION['mavariable']; ?> </p> </form> <!-- Ici récuperer dans un champ le code --> </div> </div> </div> <br><br> <form class="globalForms noPadding" action="" method="post" id="add"> <table class="globalTables leftAlign noHover" cellpadding="0" cellspacing="0"> <tbody> <tr> <td class="boldText"> Product Codification </td> <td style="width:50%"> <p><?php $codef = $code_id; echo"RES".$code_id; ?></p> <input name="pcode" id="product_code" type="text" size="120" value="<?php if(isset($_POST['submit'])) { echo $_POST['pcode']; } ?>" autofocus tabindex="0"/> </td> </tr> </form> <!-- END --> </div> <script src="include/jquery-1.9.0.min.js"></script> <script> $(document).ready(function(){ $("#savecascade").submit(function(){ var get_data=$("#savecascade").serialize(); $.ajax({ type: "POST", url: "inser_data.php", data: {"csc":get_data}, cache: false, success: function(html) { alert(html); } }); return false; }); $("select#drop1").change(function(){ var family_id = $("select#drop1 option:selected").attr('value'); // alert(family_id); $("#subfamily").html( "" ); $("#sfvariant").html( "" ); if (family_id.length > 0 ) { $.ajax({ type: "POST", url: "create_product_subfamilies.php", data: "family_id="+family_id, cache: false, beforeSend: function () { $('#subfamily').html('<img src="img/loader.gif" alt="" width="24" height="24">'); }, success: function(html) { $("#subfamily").html( html ); } }); } }); }); </script> </body> </html>
Code procédure où le code est élaboré
<?php session_start () ; if(isset($_POST['csc'])){ parse_str($_POST['csc'],$arr); if(isset($arr['sfvariant']) && $arr['sfvariant'] !=''){ $obj = New casCade(); $obj->insert_user_data($arr,$connect_msqli); $code = $arr['family'] . $arr['subfamily'] . $arr['sfvariant']; // le code est OK - informtion à récupérer // pour verification - echo "Your Data Successfully Saved."; echo "<script>var code_id = $code</script>"; $_SESSION['mavariable'] = $code ; }else{ echo "Please select all details."; } } class casCade{ function insert_user_data($arr,$connect_msqli){ $sfvariant =$arr['sfvariant']; $subfamily =$arr['subfamily']; $family =$arr['family']; $connect_msqli->close(); } }
Merci d'avance
3 réponses
Bonjour,
Je ne comprend pas bien ton problème. Tu veux récupérer et stocker une donnée entre deux pages?
Dans ce cas oui, tu peux utiliser
Qu'est-ce qui te pose problème?
EDIT: create_product_subfamilies.php contient bien un
Merci de mettre "Résolu" quand le problème est réglé!
La connaissance c'est comme la confiture: moins on en a et plus on l'étale.
Je ne comprend pas bien ton problème. Tu veux récupérer et stocker une donnée entre deux pages?
Dans ce cas oui, tu peux utiliser
$_SESSIONet l'incorporer dans la vue HTML par la suite où bon te semble (champ input en attribut value par exemple).
Qu'est-ce qui te pose problème?
EDIT: create_product_subfamilies.php contient bien un
session_start()si tu utilises
$_SESSION, non?
Merci de mettre "Résolu" quand le problème est réglé!
La connaissance c'est comme la confiture: moins on en a et plus on l'étale.
Bonjour
Mon problème c'est la récupération du contenu de la variable de session initialisée dans la 2ème procédure dans ma procédure principale.
Quand je fais le test avec echo dans la procédure principale la variable ne contient pas le code créé dans la procédure secondaire.
Donc je ne peux pas continuer et mettre cette variable dans un champ.
Oui dans tous mes php je fais un session_start ();
Mon problème c'est la récupération du contenu de la variable de session initialisée dans la 2ème procédure dans ma procédure principale.
Quand je fais le test avec echo dans la procédure principale la variable ne contient pas le code créé dans la procédure secondaire.
Donc je ne peux pas continuer et mettre cette variable dans un champ.
Oui dans tous mes php je fais un session_start ();
bonjour
merci de regarder ce post.
j'ai modifié le code de la procédure d'élaboration du code comme suit pour editer le contenu de la variable de session et du code :
voici le résultat :
Your Data Successfully Saved.<script>var code_id = 153</script>SESS153
donc oui le code est bien rempli.
merci de regarder ce post.
j'ai modifié le code de la procédure d'élaboration du code comme suit pour editer le contenu de la variable de session et du code :
$code = $arr['family'] . $arr['subfamily'] . $arr['sfvariant']; // le code est bon il faut le transferer echo "Your Data Successfully Saved."; echo "<script>var code_id = $code</script>"; $_SESSION['mavariable'] = $code ; echo "SESS".$_SESSION['mavariable']; return $_SESSION['mavariable'];
voici le résultat :
Your Data Successfully Saved.<script>var code_id = 153</script>SESS153
donc oui le code est bien rempli.