Переменные $ _SESSION «исчезают» после отправки формы - PullRequest
1 голос
/ 30 сентября 2019

Я сохранил значения из формы в переменных SESSION, но кажется, что они очищаются после if(isset($_POST['submit']), хотя я могу отобразить их ранее в своем коде. Код выполняется, и вставка работает, за исключением пустых $toto и $tata.

В приведенном ниже коде _id, master_label, client_label вставлены правильно. И поля таблицы назначения совпадают, поэтому ошибка не возникает.

<?php
session_start(); 
[...]

echo "<form id='organization' action='?' method='POST' enctype='multipart/form-data' >" ;
                    echo "<select name='organization' onchange='this.form.submit()'>";  //
                            echo '<option value="">Select ORGANIZATION</option>';
                                    while ($row=mysqli_fetch_array($result00)) {                                                                                                                                     
                                    echo '<option value="'.$row['company_id'].'">'.$row['company_id'].'</option>';
                                    }
                    echo "</select>";
                echo "</form>";         

                $cie_ticker = $_POST['organization'] ;      
                $_SESSION['company_id'] = $cie_ticker ;

$sql="(SELECT company_id, databasefile, company_name FROM `settings` WHERE company_id='$cie_ticker') LIMIT 1"; 
$result=mysqli_query($connect,$sql) or die('Could not execute the query ' . mysqli_error()) ;
$data_bis=$result->fetch_array() ;

$_SESSION['selected_cie_id'] = $data_bis['company_id'];
$_SESSION['selected_cie_name'] = $data_bis['company_name'];

            <form id='demoForm' action="?" method="POST" enctype="multipart/form-data" target="_top"> 
                        <?php
                        $file = fopen('./company/'.$cie_ticker.'/'.$_SESSION['selected_cie_db'], "r") ; // $file = fopen('./company/'.$_SESSION["company_id"].'/'.$_SESSION['selected_cie_db'], "r") ;
                        $headers=fgetcsv($file, 1000, "|");
                        fclose($file);
                        ?>      
                        <table id="user_table">
                            <tr><th>HEADERS </th><th>MASTER DB HEADERS</th></tr>

                            <?php foreach ($headers as $entete) {   

                                $query01="SELECT master_label FROM `mastertable`";
                                $result01=mysqli_query($connect,$query01); ?>

                                    <tr  id="<?php echo $entete;?>">
                                            <td>  <?php echo $entete ?></td>
                                            <td id="<?php echo $row['_id'];?>">
                                                    <?php                           
                                                    echo "<br>";                    
                                                        echo "<select name=".$entete.">";  
                                                                echo '<option value="MASTER DATA">Select MASTER DATA</option>';
                                                                        while ($row=mysqli_fetch_array($result01)) {                                                                                                                                     
                                                                        echo '<option value="'.$row['master_label'].'">'.$row['master_label'].'</option>';
                                                                                                }
                                                        echo "</select>";
                                                    ?>              
                                            </td>               
                                    </tr>
                            <?php } ?>  
                        </table>
                        <input  id="checkBtn" type="submit"  name="submitbutton" value="SAVE" class="button"/>                  
                </form>
   if(isset($_POST['submitbutton'])) {          

        $toto = $data_bis['company_id'] ; 
        $tata = $data_bis['company_name']; 

        $selected=$_POST; 

        foreach($selected as $x => $x_value) {
            $query= $connect->prepare("INSERT INTO `mytable` (_id, master_label, client_label, org_label, client_id) VALUES ('',?,?,?,?) ");

            $query->bind_param('ssss',$x_value, $x, $toto, $tata  );                                    
            $query->execute();                                                                                          
        }
    }
?>  

1 Ответ

0 голосов
/ 07 октября 2019

Я нашел ответ: в этом случае нужно добавить скрытый ввод для переменных $ _SESSION, иначе они были потеряны после отправки формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...