如何使用javascript使用GET参数重新发布数据? (建立并附加html表单,然后提交)
<?php
if($_POST){
print_r($_POST);
die();
}
?>
<script>
//code here to create form, based on GET arguments
form.submit();
</script>
和页面url将使用许多不同的get参数调用,例如
?a=b&b=c ?ddd=eee&fff=ccc
(仅纯js,无jquery或其他js框架)
答案 0 :(得分:0)
对于从$ _POST获得的每个字段,请使用javascript的FormData对象和formData.append();
示例:
var formData = new FormData(form)
<?php
foreach($_POST as $key => $value) {
echo "formData.append({$key}, {$value});";
}
?>
// and then just submit the form...
答案 1 :(得分:0)
我不确定我是否完全了解您,但是这是我认为对您有帮助的atm。 为简单起见,我假设您的GET对象中没有数组子级。 这是可能的,但是会使代码更长一些,而我现在的时间很短。
这会将GET数据重新发送为POST数据。
<form id="repost" method="post" action="/target.php">
<?php
foreach ($_GET as $key => $val)
{
// ADD VALIDATIONS AND
// XSS INJECTION PROTECTION HERE,
// E.G. $val = str_replace('"',"'",$val);
?><input type="hidden" name="<?=($key)?>" value="<?=($val)?>"><?php
}
?>
</form>
<script>document.getElementById("repost").submit();</script>