Javascript 在表单提交时向URL动态添加GET参数

Javascript 在表单提交时向URL动态添加GET参数,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我在PHP应用程序中有一个简单的表单,必须通过POST方法提交。比如: <form action="URL?page_id=10" method="POST"> <select name="some_name" id="some_id"> <option value='1'>...</option> <option value='2'>...</option> ...

我在PHP应用程序中有一个简单的表单,必须通过POST方法提交。比如:

<form action="URL?page_id=10" method="POST">
    <select name="some_name" id="some_id">
        <option value='1'>...</option>
        <option value='2'>...</option>
        ...
    </select>
    ...
    //submit button here
</form>
其中
SELECTED\u ID
是用户从表单中的选择下拉菜单中选择的值。我通过转换整个表单来发布参数作为GET,因为我需要选择这个
ID
在URL中可见。然而,出现了另一个要求,即我需要通过POST传递所有内容,并且在URL中仍然可以看到
选定的\u ID
,现在我正在寻找替代方案


因此,问题是:在提交POST表单时,如何使用表单提交的其中一个值向URL动态添加另一个GET参数?

首先,您必须向表单添加一个id,如下所示

然后在您的按钮上单击下面的函数添加调用

 function test(){
    $('#form1').attr('action', $(this).attr('formaction')+'&selected_id='+$('#some_id').val());
    }

使用
。。所有字段值将自动附加到url中

只需将带有该名称的隐藏输入(
SELECTED\u ID
)附加到表单中,您只能通过JavaScript或服务器端重定向来实现。我无法使用隐藏输入,因为我不知道用户将选择什么值。我在这里使用JavaScript没有问题,但是如何动态地向URL添加内容呢?我认为您应该能够在选项中添加一个选择侦听器,并使用JavaScript修改表单的
操作
值。但是没有时间测试它。这是正常的
submit
还是使用
ajax
?如问题中所述,我需要在提交时使用POST。使用
method=“GET”
您不能在服务器端存储值!您可以使用javascript来实现这一点,例如表单外部的select和url的onchange()附加,以及表单的其余部分作为POST NORMAL使用。我必须将“$(this)”更改为“$('#form1')”以使其正常工作,但它按照广告的方式完成了工作。非常感谢你!我不得不将
attr('formaction')
更改为
attr('action')
也许这是jquery版本之间的差异,但我让它工作了。谢谢
 function test(){
    $('#form1').attr('action', $(this).attr('formaction')+'&selected_id='+$('#some_id').val());
    }