如何在没有用户交互的情况下发布到其他页面

时间:2013-11-25 01:30:09

标签: php html post

所以我有一种情况,用户通过表单提交一些数据,然后点击一个提交按钮,该按钮指向一个单独的.php页面,在那里完成处理。处理完成后,我需要转到另一个.php页面并发送一个POST变量,我已经知道了它的值。

在html中,我会创建一个带有输入和提交按钮的表单。如果没有用户点击提交按钮,你如何在PHP中做到这一点?

5 个答案:

答案 0 :(得分:2)

我能想到的最简单的方法是将上一页的输入放在隐藏输入类型的表单中。

例如:

<?php
$post_username = $_POST['username'];
?>

<form id="form1" action="page2.php" method="post">
<input type="hidden" id="hidden_username" value="<?php echo $post_username; ?>" />
</form>

<script>
document.getElementById("form1").submit();
</script>

答案 1 :(得分:0)

    $url = 'http://server.com/path';
$data = array('key1' => 'value1', 'key2' => 'value2');

// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

var_dump($result);

代码取自here,另一个可能为您提供一些有用答案的问题。

答案 2 :(得分:0)

$.ajax({
  type: "POST",
  url: "YOUR PHP",
  data: { PARAMS }
}).done(function( msg ) {
    if(SUCCESS)
    {
$.ajax({
  type: "POST",
  url: "ANOTHER PAGE",
  data: { PARAM }
})
  .done(function( msg ) {
//Process Here
  });

如果使用Json或Xml,可以在两者之间发布参数。希望它有所帮助!

答案 3 :(得分:0)

一种有用的方法是使用CURL方法。

$url = "test.php";
$post_data = array(
    "data1"=>$value1,
    ....
);
$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//we are doing a POST request
curl_setopt($ch,CURLOPT_POST,1);
//adding the post variables to the request
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);

$output = curl_exec($ch);
curl_close($ch);

echo $output;//or do something else with the output

答案 4 :(得分:0)

Amadan正在努力。

只是坚持这个HTML添加我的PHP结束:

<html>
<form id="form" action="webAddressYouWantToRedirectTo.php" method="POST">
<input type="hidden" name="expectedPOSTVarNameOnTheOtherPage" value="<?php echo $varYouMadePreviouslyInProcessing ?>">
</form>
<script>
document.getElementById("form").submit();
</script>
</html>