我的网页类似于: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
答案 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;
}