在php中隐藏/显示切换回显结果

时间:2016-04-16 11:33:45

标签: javascript php mysql

我试图切换结果,我已经从表中回声但我没有运气。 我在HTML中尝试了相同的代码,它运行得很好。 我一直在研究这个问题,并且想知道是否有人能指出我正确的方向。

我累了

  • 在php echo中添加javascript。
  • 向id添加计数器,使其在循环中唯一
  • 放置回波的每一行会产生回声(“”);标签。

添加一个计数器,使循环中的id唯一。

PHP

                getFragmentManager()
                    .beginTransaction()
                    .detach(TheFragment.this)
                    .attach(TheFragment.this)
                    .commit();

JAVASCRIPT

   $i = 1;
   while ($output = $fc_sel->fetch_assoc()) {
   $fc_run .= $output['Food_Cat_name'] . $output['Food_Cat_Desc'] . '<br>';
   $_SESSION['Food_Cat_name'] = $output['Food_Cat_name']; //echo out product name
   $_SESSION['Food_Cat_Desc'] = $output['Food_Cat_Desc']; //echo out product desc
 echo"

 <div id='first_product'>

 <button onclick='toggle_visibility('tog')'>Toggle</button>
  <div id='tog'>

        <div id='red_head'>
            <p id='menu_title' class ='hidden' onclick='toggle_visibility('tog')'>  Add your first menu item</p>
        </div>
        <h3 id='menu'>Menu Section</h3>

        <form name='first_prod' id='first_prod' enctype='multipart/form-data' action='testing.php' method='POST' accept-charset='utf-8' >               

            <label id='cat_label' name='cat_label'>Name</label>
            <input type='text' id='cat_name' name='cat_name' value=''>

            <label id='desc_label' name='desc_label'>Description</label>
            <input type='text' id='cat_desc' name='cat_desc' value=''>



        </form>


    </div>
    </div>

    ";  
    }
    }

4 个答案:

答案 0 :(得分:2)

onclick='toggle_visibility('tog')'中的单引号与外部单引号冲突。因此要么逃避它们,要么在外部对或内部对中使用双引号。

然后在PHP中,删除<?php echo。只需将HTML放入PHP即可。 echo只会使事情复杂化。如果您需要HTML中的动态数据,只需使用<?php ... ?>将其注入该位置即可。但到目前为止,我还没有在HTML中看到任何内容:它是静态的。

这是一个工作片段,在两个地方进行了更改之后:

//turn entire div into toggle
function toggle_visibility(id) {

  var e = document.getElementById(id);
  if (e.style.display == 'block' || e.style.display == '')
    e.style.display = 'none';
  else
    e.style.display = 'block';
}
<div id='first_product'>
  <button onclick="toggle_visibility('tog')">Toggle</button>
  <div id='tog'>
    <div id='red_head'>
      <p id='menu_title' class ='hidden' onclick="toggle_visibility('tog')">  Add your first menu item</p>
    </div>
    <h3 id='menu'>Menu Section</h3>
    <form name='first_prod' id='first_prod' enctype='multipart/form-data' action='testing.php' method='POST' accept-charset='utf-8' >               
      <label id='cat_label' name='cat_label'>Name</label>
      <input type='text' id='cat_name' name='cat_name' value=''>
      <label id='desc_label' name='desc_label'>Description</label>
      <input type='text' id='cat_desc' name='cat_desc' value=''>
    </form>
  </div>
</div>

修改问题后编辑

问题中的代码已扩展,因此HTML现在循环生成。

您现在应该注意仅生成唯一的 id 值。所以你可能想在几个地方添加<?=$i?>,如下所示:

<?php
session_start();
// ....
$i = 1;
while ($output = $fc_sel->fetch_assoc()) {
    $fc_run .= $output['Food_Cat_name'] . $output['Food_Cat_Desc'] . '<br>';
    $_SESSION['Food_Cat_name'] = $output['Food_Cat_name'];
    $_SESSION['Food_Cat_Desc'] = $output['Food_Cat_Desc'];
?>

<div id='first_product<?=$i>'>

<button onclick="toggle_visibility('tog<?=$i>')">Toggle</button>
<div id='tog<?=$i>'>
    <div id='red_head<?=$i>'>

...等。请注意,PHP在HTML输出开始之前已关闭。这样做,而不是大echo。然后在它结束时,再次打开PHP标记以结束循环:

<?php
}
?>

答案 1 :(得分:0)

请修改您的代码

echo "

 <div id='first_product'>

 <button onclick='toggle_visibility(\"tog\")'>Toggle</button>
  <div id='tog'>

        <div id='red_head'>
            <p id='menu_title' class ='hidden' onclick='toggle_visibility(\"tog\")'>  Add your first menu item</p>
        </div>
        <h3 id='menu'>Menu Section</h3>

        <form name='first_prod' id='first_prod' enctype='multipart/form-data' action='testing.php' method='POST' accept-charset='utf-8' >               

            <label id='cat_label' name='cat_label'>Name</label>
            <input type='text' id='cat_name' name='cat_name' value=''>

            <label id='desc_label' name='desc_label'>Description</label>
            <input type='text' id='cat_desc' name='cat_desc' value=''>



        </form>


    </div>
    </div>

    " 

答案 2 :(得分:0)

    <button value='tog' onclick='toggle_visibility(this)'>Toggle</button>

只需使用&#34;这个&#34;并指定值以按下其工作

答案 3 :(得分:0)

试试这个;)

<?php
$i = 1;
while($output = $fc_sel->fetch_assoc()){
  $fc_run .= $output['Food_Cat_name'] . $output['Food_Cat_Desc'] . '<br>';
  $_SESSION['Food_Cat_name'] = $output['Food_Cat_name']; //echo out product name
  $_SESSION['Food_Cat_Desc'] = $output['Food_Cat_Desc']; //echo out product desc
  ?>
  <div id="first_product<?php echo $i; ?>">
    <button onclick="javascript:toggle_visibility('tog<?php echo $i; ?>')">Toggle</button>
    <div id="tog<?php echo $i; ?>">
      <div id="red_head<?php echo $i; ?>">
        <p id="menu_title<?php echo $i; ?>" class ="hidden" onclick="toggle_visibility('tog<?php echo $i; ?>')">  Add your first menu item</p>
      </div>
      <h3 id="menu<?php echo $i; ?>">Menu Section</h3>
      <form name="first_prod" id="first_prod<?php echo $i; ?>" enctype="multipart/form-data" action="testing.php" method="POST" accept-charset="utf-8">
        <label id="cat_label<?php echo $i; ?>" name="cat_label">Name</label>
        <input type="text" id="cat_name<?php echo $i; ?>" name="cat_name" value="">
        <label id="desc_label<?php echo $i; ?>" name="desc_label">Description</label>
        <input type="text" id="cat_desc<?php echo $i; ?>" name="cat_desc" value="">
      </form>
    </div>
  </div>
  <?php
  $i++;
}
?>