根据if语句显示隐藏的div部分

时间:2011-08-30 07:22:00

标签: php javascript redirect header

我在页面上有一些隐藏的div,就像这样

<div class="form" id="scheduler" style="display: none;">

<div class="form" id="test" style="display: none;">

<div class="form" id="super" style="display: none;">

我想要一个可以调用jscript来显示这些隐藏的div,基于这样的标准

<?php 
if ($_GET['id'] == 'scheduler') {
   call jscript function (show div id:scheduler in this case)
}
else if ($_GET['id'] == 'test') {
   call jscript function (show div id:test in this case)
}
else if ($_GET['id'] == 'super') {
   call jscript function (show div id:super in this case)
}
?>

感谢。

5 个答案:

答案 0 :(得分:1)

你不能从PHP调用javascript函数,PHP是基于服务器端的,代表Preprocesing Hypertext而Javascript是基于浏览器的。

您可以使用:

<?php 
    if ($_GET['id'] == 'scheduler') {
       $showdiv = 'scheduler';
    }
    else if ($_GET['id'] == 'test') {
       $showdiv = 'test';
    }
    else if ($_GET['id'] == 'super') {
       $showdiv = 'super';
    }
    echo "<script type=\"text/javascript\">document.getElementById('".$showdiv."').style.display = 'block';</script>";
?>

但是在加载这些div之后,它应该位于页面的底部。

答案 1 :(得分:0)

<script type='text/javascript'>
function showDivById(id){
    document.getElementById(id).visible = true;
}

<?php 
    $divs = array('scheduler','test','super');
    if (array_seach($_GET['id'], $divs)!==false)
        echo "showDivById({$_GET['id']})";
?>
</script>

请注意,php代码> <script>

中的

答案 2 :(得分:0)

为什么不编写函数来接受查询字符串的id参数? <script>thefunction($get);</script>

这样您可以保存if逻辑,并开发更抽象的功能。它代码更少,更易于管理。

答案 3 :(得分:0)

首先。我会用jquery来显示/隐藏div ...

但我的概念与上面的概念有点不同,

<?php
  if($_GET['id']){
    echo '<script type="text/javascript">$(\'#'.$_GET['id'].'\').show();</script>';
  }
?>

希望你有我的想法,它干净而且非常有活力:)

答案 4 :(得分:0)

即使您已经接受了答案,另一种选择是在一些JS的帮助下仅使用JavaScript来轻松地从查询字符串中检索值。

function $get(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split('&');
  for (var i = 0; i < vars.length; i++) {
    var pair = vars[i].split('=');
    if (pair[0] == variable) {
      return pair[1];
    }
  }
}

var qs_id = $get('id');

if (['scheduler', 'test', 'super'].indexOf(qs_id) >= 0) {
  document.getElementById(qs_id).style.display = 'block';
}

演示:jsfiddle.net/Marcel/L69xt/show