1

从本质上讲,我是 PHP 的新手——使用 dreamweaver cs6(我所拥有的全部)

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

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

那么,我该如何实现呢?

我从这个开始:

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

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

由于我没有服务器设置,这样的东西会起作用吗?你会建议别的吗?我完全错了吗?

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

4

3 回答 3

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>
于 2013-07-26T18:08:28.467 回答
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)应该足以满足您的需求。

于 2013-07-26T18:09:06.800 回答
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)

于 2013-07-26T18:18:35.763 回答