在不使用HTML表单的情况下将POST数据发送到PHP?

2022-08-30 21:43:19

除了表单之外,还有没有办法将帖子数据发送到php脚本?(当然不使用 GET)。

我希望javascript在X秒后重新加载页面,同时将一些数据发布到页面。我可以用GET做到这一点,但我宁愿使用POST,因为它看起来更干净。

多谢。

编辑:可以使用PHP头文件吗?我相信使用JQuery更好,但对于我目前的情况,我可以更容易/更快地实现它:)

干杯

我最终是这样做的:

<script>
  function mySubmit() {
    var form = document.forms.myForm;
    form.submit();
  }
</script>

...

<body onLoad="mySubmit()";>
  <form action="script.php?GET_Value=<?php echo $GET_var ?>" name="myForm" method="post">
    <input type="hidden" name="POST_Value" value="<?php echo $POST_Var ?>">
  </form>
</body>

对我来说似乎工作正常,但如果有什么问题,请说!

谢谢大家。


答案 1

根据上面的要求,以下是如何动态添加隐藏的表单并在要刷新页面时提交它。

HTML 中的某个位置:

<div id="hidden_form_container" style="display:none;"></div>

还有一些Javascript:

function postRefreshPage () {
  var theForm, newInput1, newInput2;
  // Start by creating a <form>
  theForm = document.createElement('form');
  theForm.action = 'somepage.php';
  theForm.method = 'post';
  // Next create the <input>s in the form and give them names and values
  newInput1 = document.createElement('input');
  newInput1.type = 'hidden';
  newInput1.name = 'input_1';
  newInput1.value = 'value 1';
  newInput2 = document.createElement('input');
  newInput2.type = 'hidden';
  newInput2.name = 'input_2';
  newInput2.value = 'value 2';
  // Now put everything together...
  theForm.appendChild(newInput1);
  theForm.appendChild(newInput2);
  // ...and it to the DOM...
  document.getElementById('hidden_form_container').appendChild(theForm);
  // ...and submit it
  theForm.submit();
}

这相当于提交此 HTML 表单:

<form action="somepage.php" method="post">
  <input type="hidden" name="input_1" value="value 1" />
  <input type="hidden" name="input_2" value="value 2" />
</form>

答案 2

您可以使用JQuery发布到php页面:http://api.jquery.com/jQuery.post/