PHP如何根据查询字符串值显示隐藏DIVS

时间:2013-07-26 18:05:01

标签: php pageload

基本上,我是PHP的新手 - 使用Dreamweaver cs6(我的全部)

我必须获取查询字符串的值(someurl.com/id=something)。 获得该值后,我需要根据ID显示一个div。

虽然我知道PHP确实没有任何真正的“页面加载”事件,但我想在页面打开时使用它。

那么,我该如何做到这一点?

我从这开始:

<?php
    $stringId = $_GET['id']
   ?>

    <script language="javascript">      
        document.getElementById('$stringId').style.display = "block";
    </script>
    <?
?>

由于我没有服务器设置,这样的工作会有效吗? 你会推荐别的吗? 我完全错了吗?

任何输入都将不胜感激。 谢谢。

3 个答案:

答案 0 :(得分:2)

您应该依靠javascript设置内联样式,因为某些用户可能已关闭javascript。

<div <?php if($_GET['id'] == 'X'){ ?>style="display: block;"<?php } ?>>
    your div content
</div>

使用其他请求

<div style="<?php if($_GET['id'] == 'X'){ ?>display: block;<?php } else { ?>display: none;<?php } ?">
    your div content
</div>

你也可以使用预定义的css类

基于你的评论,如果你需要将它混合起来,只需插入此

即可让许多人进行切换
<script language="javascript">      
    document.getElementById('<?php echo $_GET['id']; ?>').style.display = "block";
</script>

答案 1 :(得分:2)

它应该是这样的:

<?php
switch($_GET['id']) {
    case 'asdf':
        echo '<div>ASDF in QS</div>';
        break;
    case 'bcd':
        echo '<div class="some-class-because-i-can">something else</div>';
}

你不能简单地将javascript与php混合。

当然,您需要服务器设置,内置于php(http://php.net/manual/en/features.commandline.webserver.php)的服务器应该足以满足您的需求。

答案 2 :(得分:1)

PHP是服务器端脚本语言,这意味着它只在服务器上运行(任何输出都在用户屏幕上呈现),据说你需要像WAMP XAMP这样的本地服务器来调试/运行你的代码。

你要做的是不会工作PHP在服务器上执行,就像我之前提到的那样,Javascript在浏览器浏览器中运行,当你的javascript代码运行时,变量$ stringID将不会出现。

为什么在PHP可以呈现该元素且仅显示该元素时,为什么要隐藏具有url ID的元素。

<?php
    if(isset($_GET['id'])) {   //checks weather the link has data in the id field
       $stringId = $_GET['id'];

       echo "<div> content here </div>"; //anything you echo will be rendered in the 
                                         //pages source code be it HTML, Javascript etc.
    }
>?

如果你想从php中获取这些数据而不刷新页面,请使用jQuery中的AJAX(google it:D)