【问题标题】:global variable returns null when sent to list全局变量在发送到列表时返回 null
【发布时间】:2015-07-24 19:37:20
【问题描述】:

我目前正在处理这两部分代码。

一个用于接收数据,一个用于在列表中显示,但由于某种原因,变量$emp_name 在我尝试在第二部分中显示时总是返回null

这个想法是搜索员工,然后显示他的数据。

接收数据:

if (isset($_POST['search_button'])) {
$cnt = new Connector();
$employee = new Search($cnt);
$name = $_POST['name'];
$found = array('name' => $employee->getEmployeeByName($name)[0]['name']);
$emp_name = $found['name'];
global $emp_name;


     $display =  "<br><br>


    <table class='table table-striped'>
    <thead>
      <tr>
        <th width='100%';>Name</th>
        <th width=100%;>Action</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td width=100%;>$emp_name</td>
        <td width=100%;><div class='container'>                               
  <div class='dropdown'>

    <button class='btn btn-default dropdown-toggle' type='button' id='menu1' data-toggle='dropdown'>Please choose
    <span class='caret'></span></button>
    <ul class='dropdown-menu' role='menu' aria-labelledby='menu1'>
      <li role='presentation'><a role='menuitem' tabindex='-1'href='index.php?action=data'>Daten anzeigen</a></li>
      <li role='presentation'><a role='menuitem' tabindex='-1' href='#'>Send message to $emp_name</a></li>
    </ul>
  </div>
</div>
</td>

      </tr>
    </tbody>
  </table>




";

         $_SESSION = $display;
}



?>


在列表中显示它:

<?php


print_r($_SESSION);

if (isset($_SESSION['action'])) {

    echo "
<h4>Employee Data</h4><br>
    <ul class='nav nav-tabs'>
        <li class='active'><a data-toggle='tab'href='#sectionA'>Address</a></li>

        <li><a data-toggle='tab' href='#sectionB'>Personal Data</a></li>

       <li><a data-toggle='tab' href='#sectionB'>Communication Data</a></li>
            </ul>

        </li>

    </ul>

    <div class='tab-content'>

        <div id='sectionA' class='tab-pane fade in active'>

            <ul class='list-group'>
  <li class='list-group-item'>First Name ".$emp_name."
  </li>
  <li class='list-group-item'>Last Name</li>
  <li class='list-group-item'>Street</li>
  <li class='list-group-item'>Zip</li>
  <li class='list-group-item'>City</li>
  <li class='list-group-item'>Country</li>
</ul>

        </div>

        <div id='sectionB' class='tab-pane fade'>

            <p>Section B content…</p>

        </div>

        <div id='dropdown1' class='tab-pane fade'>

            <p>Dropdown 1 content…</p>

        </div>

        <div id='dropdown2' class='tab-pane fade'>

            <p>Dropdown 2 content…</p>

        </div>

    </div>
    ";
}





?>

【问题讨论】:

  • 将变量存储为全局变量在这里没有帮助。您需要将其放入会话变量中,以使其在您网站的各个页面中可用。
  • 这两个独立的页面还是同一页面的两个代码?如果它们是单独的页面,全局变量不会跨页面保存,则需要使用$_SESSION
  • 在同一页上。我已经尝试过一个会话:
    $_SESSION['data'] = $emp_id;然后像这样输出它:
  • First Name ".$_SESSION['data']."
    它仍然返回 null
  • 这些是两个不同的功能吗?
  • @BeardFace 只是在 2 个不同的 if 语句中,就像代码中显示的那样。
  • 标签: php variables null return global


    【解决方案1】:

    我会检查 $_SESSION['action'] 的实际值,并单独回显(或 var_dump)其他变量,例如 $emp_name 以测试/确保它们按预期填充。 正如 Jay Blanchard 所提到的,使用 $_SESSION['someVar'] 比使用 global 关键字更好。

    在这里找到了一些不错的信息:PHP sessions that have already been started

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签