在会话中保存下拉菜单中的数据并显示在另一个页面 Codeigniter

Posted

技术标签:

【中文标题】在会话中保存下拉菜单中的数据并显示在另一个页面 Codeigniter【英文标题】:Save data from dropdown at session and show in another page Codeigniter 【发布时间】:2021-12-17 12:20:49 【问题描述】:

您好,我在使用 codeigniter 时遇到问题。 在这里,我想将通过下拉列表选择的数据保存到会话中,然后将选择的数据显示到名为 step4 的页面。我试过了,但是当我显示数据时,它没有出现。

这是脚本:

控制器Step1.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Step1 extends CI_Controller 

  function __construct() 
    parent::__construct();
    $this->load->helper('url');
    $this->load->library('session');
    $this->load->model('M_datasiswa');
  

    public function step1()
    
    $data['departemen'] = $this->M_datasiswa->get_departemen();
    $data['tahunajaran'] = $this->M_datasiswa->get_tahunajaran();
        $this->load->view('v_step1',$data);
  

  function save_data()
    $depart = $this->input->post('kode_departemen');
    $tahun = $this->input->post('kode_tahun');
    $asal = $this->input->post('kode_asal');

    $data = array(
      'departemen' => $depart,
      'proses' => $tahun,
      'asal' => $asal
    );
    $this->session->set_userdata($data);
    redirect('step4');

    





v_step1.php

<form action="<?php echo base_url('Step1/save_data'); ?>" method="post">
      <table border="0" style="text-align:left; margin-left: auto; margin-right: auto; width:97%; margin-top:50px;">
        <tr style="height:50px;">
          <td style="width:100px;"> </td>
          <td class="tulisanDalamTabel" colspan="2"> &nbsp; Departemen </td>
          <td colspan="1" style="width: 100px;"> </td>
          <td colspan="2">
            <select required name="kode_departemen" class="tulisanDalamTabel" style="width:98%; margin-left: 7px; height:40px;">
                <option value="" disabled diselected>--PILIH UNIT--</option>
              <?php
                foreach ($departemen as $row)  echo "<option value='".$row->replid."'>".$row->departemen."</option>";echo"</select>"?>
          </td>
        </tr>

        <tr style="height:50px;" >
          <td style="width:100px;"></td>
          <td class="tulisanDalamTabel" colspan="2"> &nbsp; PPDB </td>
          <td colspan="1" style="width: 100px;"> </td>
          <td colspan="2">
            <select required name="kode_tahun" class="tulisanDalamTabel" style="width:98%; margin-left: 7px; height:40px;">
                <option value="" disabled diselected>--PILIH TAHUN AJARAN--</option>
              <?php
                foreach ($tahunajaran as $row)  echo "<option value='".$row->replid."'>".$row->proses."</option>";echo"</select>"?>
          </td>
        </tr>

        <tr style="height:50px;">
          <td style="width:100px;"></td>
          <td class="tulisanDalamTabel" colspan="2"> &nbsp; Asal Calon Siswa </td>
          <td colspan="1" style="width: 100px;"> </td>
          <td colspan="2">
            <select required name="kode_asal" class="tulisanDalamTabel" style="width:98%; margin-left: 7px; height:40px;">
                <option value="" disabled diselected>--PILIH--</option>
              <option> UMUM </option>
              <option> KELUARGA YAYASAN </option>
          </td>
        </tr>

        <tr style="height:50px;">
        <td colspan="8"><hr style="width: 98%"/></td>
        </tr>
        <tr style="height:50px;">
          <td class="tulisanDalamTabel" colspan="2"><input type="submit" class="buttonKembali" value="Batal Daftar" style="vertical-align:middle"> </td>
          <td colspan="4"> </td>
          <td class="tulisanDalamTabel" style="text-align:right; width:380px"><input type="submit" class="buttonSelanjutnya" value="Selanjutnya" style="vertical-align:middle;"> </td>
        </tr>
      </table>
    </form>

v_step4.php

<table border="1" style="text-align:left; margin-left: auto; margin-right: auto; width:97%; margin-top:50px;">
        <tr style="height:50px;">
          <td class="tulisanDalamTabel"> &nbsp; Nama Lengkap </td>
          <td> <input type="text" placeholder="Nama Lengkap" class="tulisanDalamTabel" style="width:98%; margin-left: 7px; height:40px;"/> </td>
          <td> <?php $this->session->userdata('departemen') ?></td>
          <td class="tulisanDalamTabel"> &nbsp; Nama Panggilan </td>
          <td> <input type="text" placeholder="Nama Panggilan" class="tulisanDalamTabel" style="width:97%; margin-left: 1px; height:40px;"/> </td>
        </tr>

谢谢,希望有人能帮助我。

【问题讨论】:

不出现是什么意思?您是否收到错误消息或页面只是空白? 没有错误,只是从上面的脚本中我想在v_step4页面上显示departemen数据。 Departemen 数据取自 v_step1 中的下拉列表。当我想显示部门人员的数据时,它不存在。 检查会话变量中的内容。 var_dump($_SESSION); 您是否尝试在访问会话数据之前启动会话? session_start(); 【参考方案1】:

您忘记使用 echo 打印

<td> <?php $this->session->userdata('departemen') ?></td>

改为这样做

<td> <?php echo $this->session->userdata('departemen') ?></td>

【讨论】:

以上是关于在会话中保存下拉菜单中的数据并显示在另一个页面 Codeigniter的主要内容,如果未能解决你的问题,请参考以下文章

在会话中存储错误消息并显示在另一个页面上

cookie,localStorage,sessionStorage

验证下拉菜单的当前选择

如何向数据库中保存单引号,双引号等字符

如何将 POST 数据发送到 PHP 中的另一个会话?

如何更改会话数据并保持在同一页面上?