我使用PHP。
我有一个表单,提交后我希望它转到最后一个带有$ _POST变量的URL(作为$ _GET),如下所示:
http://example.com/page.php?my_key=my_value
问题是" my_value"是在表单中创建的,这意味着在表单发布之前它不知道它。有什么想法吗?
<form method="post" action="/page.php?my_key=">
<input type="text" value="my_value" name="my_key">
<input type="submit" name="submitter">
</form>
答案 0 :(得分:3)
在PHP中发送表单后,您可以简单地将302重定向到您想要的URL。
在PHP文件page.php中(或在前控制器的其他文件中),你可以这么做:
if (isset($_POST['my_key'])) {
header('Location: http://'.$_SERVER["SERVER_NAME"].$_SERVER['REQUEST_URI'].$_POST['my_key'],true,302);
}
答案 1 :(得分:1)
使用Javascript更改action
属性。
即。使用jQuery:
jQuery('form').submit(function(eve) {
var action = eve.target.attr('action');
action = action + eve.target.find('input[name="my_key"]').val();
eve.target.attr('action',action);
});
有点粗糙,需要检查并调试。
答案 2 :(得分:1)
您无法通过网址传递POST值: 你能做的就是这样:
<form action="/page.php?my_key=" name="pre" method="POST">
<input type="hidden" name="my_key" value="my_value">
</form>
<script type="text/javascript">
setTimeout("document.forms['pre'].submit();",0);
</script>
现在这将作为一个链接,并将自动提交表格作为POST。