如何使用javascript使用GET参数重新发布数据(构建并附加html表单,然后提交)

时间:2018-08-16 13:01:11

标签: javascript php

如何使用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框架)

2 个答案:

答案 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>