1

我在一个页面上有几个表单,带有一个按钮和一个隐藏的输入字段,其值已经预设:

<form action="product.html" method="get">
<fieldset>
<input style="display: none;" type="text" name="RSS" id="RSS" value="RSS" />
<input type="submit" value="Go"/>
</fieldset>
</form>

<form action="product.html" method="get">
<fieldset>
<input style="display: none;" type="text" name="RSS2" id="RSS2" value="RSS2" />
<input type="submit" value="Go"/>
</fieldset>
</form>

一旦他们点击任一表单上的 Go 按钮,它将重定向到 product.html 页面,在该页面中,根据上面的值加载特定的 div。

<div id="ID CHANGE TO OCCUR HERE to either be RSS or RSS2"></div>

我的问题是,我如何让那个 id 在那个 div 上改变?谢谢

PS:公司服务器上没有启用PHP...所以是的..是的...

4

3 回答 3

0

您可以使用 javascript 测试您的请求:

if(location.href.indexOf("RSS=RSS") > 0) {
    var element = document.getElementById('RSS')
    element.id = "RSS2";
    element.name = "RSS2";
    element.value = "RSS2";
}

这只是一个 indexOf 检查,您还可以解析整个查询字符串并将键/值对关联到一个数组中。请参阅如何在 JavaScript 中获取查询字符串值?

于 2013-10-18T20:51:06.473 回答
0

重新阅读您的问题,我整理了完整的示例。在您的目标页面中,您有两个 DIV,您希望根据用户单击的表单显示一个或另一个。

这是解决方案的一个工作示例。复制/粘贴到两个名为:

test.php -- 这个文件可以任意重命名
product.php -- 如果改变这个名字,必须同时改变action=表单的两个属性的名字


测试.php

<form action="product.php" method="get"> <!--  product.html -->
<fieldset>
    <input type="hidden" name="RSS" id="RSS" value="RSS" />
    <input type="submit" value="Go"/>
</fieldset>
</form>

<form action="product.php" method="get">
<fieldset>
    <input type="hidden" name="RSS2" id="RSS2" value="RSS2" />
    <input type="submit" value="Go"/>
</fieldset>
</form>

产品.php

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                var whichone = $('#xfer').val();
                //alert( whichone );
                $('#' + whichone).show();
            });
        </script>
    </head>
    <body>
        <input type="hidden" id="xfer" value="<?php echo ( isset($_REQUEST['RSS'])  ? 'RSS' : 'RSS2' ) ; ?>">

        <div id="RSS" style="display:none;">
            <h1>RSS DIV</h1>
            Here is some information regarding the RSS div.
        </div><!-- #RSS -->
        <div id="RSS2" style="display:none;">
            <h1>RSS2 DIV</h1>
            <i>Here is some <strong>different </strong>information regarding the RSS2 div.</i>
        </div><!-- #RSS -->
    </body>
</html>
于 2013-10-18T19:41:39.957 回答
0

如果我理解正确,当程序控制转移到 product.html 时,您希望发现遇到了哪个表单值(即用户单击了哪个表单)。

我想不出你会如何仅使用 HTML 来做到这一点。这是 PHP 或 ASP .Net 等服务器端语言的工作。

这在 PHP 中非常简单。请注意,您可以使用所有现有的 HTML 文件并将它们简单地重命名为 .php(例如 product.php),它们仍然可以正常工作。

只需将其放在文件的顶部——事实上,这是完整的文件(只需复制/粘贴到您的服务器进行测试):

产品.php

<?php 

    /*   Below not required, but un-comment to see useful info: 
    echo '<pre>';
    print_r($_REQUEST);
    echo '<pre>';
    */

    if (isset($_REQUEST['RSS'])) {
        echo 'User clicked the RSS form';
    } else if (isset($_REQUEST['RSS2'])) {
        echo 'Sent here by the RSS2 form';
    }

由于处理文件的名称已更改,请记住action=在尝试此操作之前更改每个表单中的行:

<form action="product.php" method="get">

解释:

提交表单时,表单元素(输入字段、单选按钮、复选框)被转换为变量并发送到处理文档action=(在表单标签的属性中指定的目标文档)。

对于每个元素,变量名称是该name=元素的属性,变量值是value=属性,或者,例如,在输入字段的情况下,用户在按下提交之前在字段中键入的任何内容。

method="Get"将表单发送为or之间的编程/功能差异很小method="POST",但是 post 方法更安全并且可以传输更多信息,因此我们大多数人都使用它。

最后,在另一端,有三种方法可以获取变量值(PHP 示例):

 $newvar = $_GET['varname'];  //if method="GET" was used

 $newvar = $_POST['varname'];  //if method="post" was used

 $newvar = $_REQUEST['varname'];  //works for both

如果您在 PHP 方面需要更多帮助,请在 New Boston他自己的网站上观看 Alex Garret 的一些免费的 10 分钟视频。

于 2013-10-18T19:00:38.787 回答