Javascript 在表单提交时向URL动态添加GET参数
我在PHP应用程序中有一个简单的表单,必须通过POST方法提交。比如: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> ...
<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());
}