提交选择选项和当前页面url参数

时间:2017-11-15 14:22:23

标签: javascript jquery forms

我的网页类似于:index.php/voting/?name=someName,其形式包含选择选项:

 <form id="voting-form" method="GET" action="index.php/vote/">
    <select name="company" id="company">
        <option value="company1">company 1</option>
        <option value="company2">company 2</option>
        <option value="company3">company 3</option>
    </select>

    <input type="submit" value="Submit">
</form>

我需要使用当前页面中的select value和url name参数提交此表单。例如,用户选择了company1:index.php/vote/?company=company1&name=someName

我试图像这样修改表单操作:

 var url_string = window.location.href
 var url = new URL(url_string);
 var name = url.searchParams.get("name");
 document.getElementById('voting-form').action = "index.php/vote/?name=" + name +"&";

但是当我提交按钮时,我被重定向到index.php/vote/?company=company1。所以遗漏了name param

2 个答案:

答案 0 :(得分:3)

您可以添加input表单hidden,将其添加到url params

<input type="hidden" name="name" value"someName" id="nameInput">

要设置输入值,您可以使用JS进行位修改

var url = new URL(window.location.href),
    name = url.searchParams.get("name");

document.getElementById('nameInput').value = name;
像@Globus示例中的

PHP

答案 1 :(得分:1)

表单帖子不关心你的javascript,并做它喜欢的事情。 您应该在表单中创建一个隐藏字段,将名称存储在GET参数中,以便表单提交也将此参数添加到URL中。

将您的代码更改为:

#include  <stdio.h>

typedef struct {
    const int x;
    const int y;
} my_struct;

//const int a = 8;
//const int b = 12;

#define a 8                  //use preprocessor MACROs
#define b 12                 //use preprocessor MACROs

my_struct test = { a, b };

int main(void)
{
    printf("Hello, world!\n");
    return 0;
}