首页 > 解决方案 > 在表单上发送值以回显变量 $visible 时出现问题

问题描述

在练习中,复选框变量 0 或 1 应该回显,但是由于某种原因,当我尝试回显它时,“Visble”没有显示任何内容?其他参数都很好,只是这个,我只是不知道为什么。

可见变量根本没有显示任何回声

检查逗号并与确实有效的代码进行比较,但是我看不出有任何区别,所以看不出它为什么不起作用

<?php 

require_once('../../../private/initialize.php'); 

if (!isset($_GET['id'])) {
redirect_to(url_for('/stafff/pages/index.php')); }

$id = $_GET['id']; $menu_name = ''; $position = ''; $visible = '';

   if (is_post_request()) {     $menu_name = $_POST ['menu_name'] ??
'';  $position = $_POST ['position'] ?? '';  $visibile = $_POST
['visible'] ?? '';    echo "Forms parameterffs <br />";  echo "Menu
name: " . $menu_name . "<br />";  echo "Position:" . $position .
"<br />";  echo "Visible:" . $visible . "<br />" ;    }  ?>

     <?php $page_title = 'Create page'; ?>     <?php include(SHARED_PATH . '/staff_header.php'); ?>

<div id="content">

<a class="back-link" href="<?php echo
url_for('/staff/subjects/index.php'); ?>">&laquo; Back to List</a>

  <div class="subject edit"> 
    <h1> Edit Subject </h1>   

    <form action=" <?php echo url_for('/staff/pages/edit.php?id=' . h(u($id))); ?>" method="post" />
      <dl>
        <dt>Menu Name</dt>
        <dd><input type="text" name="menu_name" value="<?php echo h(u($menu_name)); ?>" /></dd>
      </dl>
      <dl>
        <dt>Position</dt>
        <dd>
          <select name="position">
            <option value="1">1</option>
          </select>
        </dd>
      </dl>
      <dl>
        <dt>Visible</dt>
        <dd>
          <input type="hidden" name="visible" value="0" />
          <input type="checkbox" name="visible" value ="1"<?php if($visible == "1") {echo "checked";} ?> />
        </dd>
      </dl> 

      <div id="operations">
        <input type="submit" value="Create Page"/>
      </div>
    </form>

    <?php include(SHARED_PATH . '/staff_footer.php'); ?>

当我选中复选框时,希望看到 1 可见。目前没有任何结果。

标签: phphtml

解决方案


您可以尝试使用此代码,看看是否有帮助。
由于某些原因,您有 2 个具有相同名称“可见”的输入,这会混淆解析逻辑。

<?php 

    require_once('../../../private/initialize.php'); 

    if (!isset($_GET['id'])) {
        redirect_to(url_for('/stafff/pages/index.php')); 
    }
    $id = $_GET['id']; $menu_name = ''; $position = ''; $visible = '';

    if (is_post_request()) {     
        $menu_name = $_POST ['menu_name'] ?? '';  
        $position = $_POST ['position'] ?? '';  
        $visibile = isset($_POST['visible']) ? $_POST['visible'] : '';    
        echo "Forms parameterffs <br />";  
        echo "Menu name: " . $menu_name . "<br />";  
        echo "Position:" . $position .    "<br />";  
        echo "Visible:" . $visible . "<br />" ;    
    }  
?>

<?php $page_title = 'Create page'; ?>     <?php include(SHARED_PATH . '/staff_header.php'); ?>

<div id="content">

<a class="back-link" href="<?php echo
url_for('/staff/subjects/index.php'); ?>">&laquo; Back to List</a>

  <div class="subject edit"> 
    <h1> Edit Subject </h1>   

    <form action=" <?php echo url_for('/staff/pages/edit.php?id=' . h(u($id))); ?>" method="post" />
      <dl>
        <dt>Menu Name</dt>
        <dd><input type="text" name="menu_name" value="<?php echo h(u($menu_name)); ?>" /></dd>
      </dl>
      <dl>
        <dt>Position</dt>
        <dd>
          <select name="position">
            <option value="1">1</option>
          </select>
        </dd>
      </dl>
      <dl>
        <dt>Visible</dt>
        <dd>
          <input type="checkbox" name="visible" value ="1"<?php if($visible == "1") {echo "checked";} ?> />
        </dd>
      </dl> 

      <div id="operations">
        <input type="submit" value="Create Page"/>
      </div>
    </form>

    <?php include(SHARED_PATH . '/staff_footer.php'); ?>

推荐阅读