【问题标题】:show/hide div section based on where the page is redirected from?根据页面重定向的位置显示/隐藏 div 部分?
【发布时间】:2011-08-29 17:38:28
【问题描述】:

我有两个像这样重定向的 php 文件

`header('Location: usrsecuredpage.php?div=subscription');`
`header('Location: usrsecuredpage.php?div=stusearch');`

在“usrsecuredpage.php”页面上,我有一些显示和隐藏 div 部分的 javascrip 切换链接。这是代码:

<li><a href="javascript:toggle('subscription')"><b>Subscription Details</b></a></li>
<li><a href="javascript:toggle('stusearch')"><b>Personal Information</b></a></li>

单击订阅切换链接显示订阅详细信息并隐藏个人信息,反之亦然..

我希望 php 页面提供的标题自动显示相关的 div 部分。例如,当从 php 页面接收到标题 header('Location: usrsecuredpage.php?div=subscription'); 时,我希望订阅详细信息部分切换并显示..

我该怎么做?

【问题讨论】:

  • 我会通过在 URL 中添加一个哈希来解决这个问题,该 URL 指定要显示或隐藏哪个 DIV。然后编写一个 JavaScript 函数(在 window.load 之后),它会变魔术。
  • mblase75: 你能举个例子吗,我不擅长javascripting.. thnx

标签: php javascript mysql redirect toggle


【解决方案1】:

将查询字符串参数添加到您的 URL,并根据查询字符串参数让页面显示或隐藏 div。

例如,

header('Location: usrsecuredpage.php?ShowDiv=true');

然后,在结果页面中,您可以使用全局变量 $_GET 检查该变量的值,如下所示:

$_GET['ShowDiv']

使用此变量,您可以相应地显示或隐藏 div。让我知道是否可以提供更多详细信息...

【讨论】:

  • 好吧,假设我传递了这个参数 header('Location: usrsecuredpage.php?id=showstuinfo');在 usrsecuredpage.php 上,我如何检查收到的结果是否为 showtuinfo,在这种情况下如何切换“stusearch”??
  • 我的意思是使用我从 $_get 获得的这个变量我如何切换链接??
  • usrsecuredpage.php是通过php生成的吗?如果是这样,只需在要有条件地显示的 div 周围包裹一个 IF 块。
  • usrsecuredpage.php 从 php sql 查询中获取所有数据。根据通过 URL 接收的变量切换 div 的 if 语句应该是什么?
【解决方案2】:

如果可以的话,我会建议使用 jquery ... 只需包含 jquery 库,然后使用此代码 ...

$("#yourDiv").show();

【讨论】:

    【解决方案3】:

    使用可以通过 URL 传递的 GET 参数。例如,在您重定向回原始页面的 PHP 文件中,为您的重定向代码键入以下内容:

    header('Location: usrsecuredpage.php?div=sub'); // div='sub' or div='stu'
    

    现在,在usrsecuredpage.php 文件中,在顶部附近包含以下代码,以找出在开始时要打开哪个 div:

    $openDiv = $_GET['div'];
    

    此时,$openDiv 变量将包含“sub”、“stu”或未定义(如果您未在 URL 中包含参数)。您可以使用isset($openDiv) 来查看它是否已定义。如果已定义,则与 $openDiv 的值进行比较以找出在开始时打开哪个 div。例如:

    // initialize display of both divs to none
    $subscriptionVisibility = "none";
    $stusearchVisibility = "none";
    
    // now, based on value of $openDiv, set above vars
    if (isset($openDiv) && strcomp($openDiv,"sub") == 0)
       $subscriptionVisibility = "inline";
    else if (isset($openDiv))
       $stusearchVisibility = "inline";
    
    .
    .
    .
    
    // now, whenever you create the divs, use their visibilities
    echo "<div class='jotform-form' id='subscriptionDiv' style='display:$subscriptionVisibility;'></div>";
    echo "<div class='jotform-form' id='stusearchDiv' style='display:$stusearchVisibility;'></div>";
    

    在此示例中,如果您的参数不是“sub”,则代码假定它是“stu”。因此,如果您的参数是“bla”,它仍然会使 stusearch div 可见。

    这可能不是此解决方案的最佳代码,但是,它应该足以将您推向正确的方向。总体方法是:将 URL 字符串中的参数作为 GET 参数传递(如我所示),然后在 usrsecuredpage.php 文件中,使用该参数来确定应该打开哪个 div从一开始。

    【讨论】:

    • 那将是我选择的代码,但我已经使用 div 样式来切换这些链接,就像这样
    • 是一样的。我更新了我的示例以使用 display:nonedisplay:inline 代替。无论您在何处编写 div,都使用&lt;? 开始一个 PHP 标记,完成“回显”您的 div 后,使用?&gt; 结束它
    • 我们可以做类似的事情吗 = if $openDiv == 'sub' subscriptionDiv = "show"; else if $openDiv == 'stu' stusearchDiv = "show";
    • @ABI,请提供您的usrsecuredpage.php 的代码,我将按照上面显示的方式为您实现它。如果($openDiv == 'sub') 大致等同于(strcomp($openDiv,"sub")),我几乎按照你说的做。我唯一要添加的是 HTML 编写代码。您需要以不同的方式编写 HTML 代码以将 div 启动为可见或隐藏。在此处包含您的代码,如果您在实现此代码时遇到问题,我会为您修改。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签