将表单get变量合并为单个变量

时间:2017-05-13 12:20:49

标签: javascript php html forms variables

当用户以表单形式提交数据时,我想将多个get变量组合成单个变量。

例如,如果用户提供的输入值如“名字:戴夫,姓氏:史密斯,姓氏:戴夫+别墅” 然后表单将get变量赋予“?fName=Dave&lName=Smith&famName=Dave+Villa

但我需要在单个变量中输出“?family=Dave-Smith-Dave+Villa”。

可能吗?

另外你可以使用javascript。

这是我的代码,

<html>
     <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    </head>
    <body>
       <h4>Family Category</h4>
      <form name="userForm" action="" method="get">
      <table>
      <tr><td>First Name :</td><td><input type="text" name="fName"/></td><tr>
      <tr><td>Last Name :</td><td><input type="text" name="lName"/></td><tr>
      <tr><td>Family Name:</td><td><input type="text" name="famName"/></td><tr>
      <tr><td></td><td><input type="submit" value="Add Category"/></td><tr>
      </table>
      </form>
    </body>
  </html>

2 个答案:

答案 0 :(得分:1)

我们可以使用JavaScript更改hidden形式的name=family变量,其中包含FirstNameLastNameFamily的{​​{1}}。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>

<script>
    function X()
    {
        x = document.getElementById("a").value + "-" + document.getElementById("b").value + "-" + document.getElementById("c").value;
        document.getElementById("d").value = x;
    }
</script>

<h4>Family Category</h4>
<form name="userForm" action="dd.php" method="get" onsubmit="return X()">
<table>
<tr><td>First Name :</td><td><input type="text" id="a"/></td><tr>
<tr><td>Last Name :</td><td><input type="text" id="b"/></td><tr>
<tr><td>Family Name:</td><td><input type="text" id="c"/></td><tr>
<tr><td></td><td><input type="hidden" id="d" name="family"/></td><tr>
<tr><td></td><td><input type="submit" value="Add Category"/></td><tr>
</table>
</form>
</body>
</html>

然后我们可以提交。

注意:您可以在此处找到family=Dave-Smith-Dave%2BVilla的网址 别担心!使用

<?php
    echo $_GET["family"];
?>

你会在那里看到很好的Dave-Smith-Dave+Villa

此%2B的原因是Character + is converted to %2B in HTTP Post

您还可以在https://www.w3schools.com/tags/ref_urlencode.asp

中找到网址编码列表

答案 1 :(得分:1)

使用隐藏字段输入并将其命名为name="family"并从所有其他输入中删除name。然后,我们可以在使用Javascript提交表单之前设置系列的值。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<h4>Family Category</h4>
<form name="userForm" action="" method="get" onsubmit="setGetUrl()">
    <table>
        <tr><td>First Name :</td><td><input id="name" type="text" />
            <input type="text" name="family" id="family" hidden></td><tr>
        <tr><td>Last Name :</td><td><input id="lname" type="text" ></td><tr>
        <tr><td>Family Name:</td><td><input id="famName" type="text"/></td><tr>
        <tr><td></td><td><input type="submit" value="Add Category"/></td><tr>
    </table>
</form>
</body>
<script>
    function getValue(id) {
        return document.getElementById(id).value;
    }

    function setGetUrl() {
        var name = getValue('name');
        var lname = getValue('lname');
        var famName = getValue('famName');
        document.getElementById('family').value = name + '-' + lname + '-' + famName;
    }

</script>
</body>
</html>