如何根据表单值更改div id名称?

时间:2013-10-18 17:01:52

标签: javascript jquery forms submit

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

<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>

我的问题是,如何在该div上更改该ID? 感谢

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

3 个答案:

答案 0 :(得分:0)

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

我无法想象你将如何仅使用HTML来实现这一目标。这是PHP或ASP .Net等服务器端语言的工作。

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

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

<强> product.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"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的帮助,请在the New Bostonhis own site上查看Alex Garret的一些免费十分钟视频。

答案 1 :(得分:0)

重新阅读你的问题,我把完整的例子放在一起。在目标页面中,您有两个DIV,并且您希望根据用户单击的形式显示其中一个。

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

的文件中

test.php - 无论您想要什么,都可以重命名此文件 product.php - 如果更改此名称,还必须更改表单的action=个属性中的名称


<强> test.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>

<强> product.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>

答案 2 :(得分:0)

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

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

这只是一个indexOf检查,你也可以解析整个查询字符串并将键/值对关联到一个数组中。见How can I get query string values in JavaScript?