表单提交函数,应用场景(请求接口数据),最近对接第三方充值接口时,接口不支持curl方式提交,只能用表单提交数据。但是自己的充值数据还需请求到自己的后台中进行数据处理,同时请求另一个下单接口后,再把下单的充值数据提交到充值接口。在不能直接用前端html原表单提交的情况下,只能封装一个表单提交函数。
注意的是表单函数中用tp5 框架中 return $str 返回表单,会出现提交表单不稳定的问题,即有时候可以提交到接口地址,有时候不能。所以使用echo $str,保证表单提交的稳定性
/*
$url 接口地址
$native 表单请求的数组数据
*/
function createForm($url ,$native){
// print_r($url);die;
$str ='';
$str.='<!DOCTYPE html>';
$str.='<html lang="zh-CN">';
$str.='<head>';
$str.=' <meta charset="utf-8">';
$str.='<meta http-equiv="X-UA-Compatible" content="IE=edge">';
$str.='<meta name="viewport" content="width=device-width, initial-scale=1">';
$str.='<title>支付</title>';
$str.='</head>';
$str.='<body onLoad="document.pay.submit();">';
$str.='<div class="container">';
$str.='<div class="row" style="margin:15px;0;">';
$str.='<div class="col-md-12">';
$str.='<form name="pay" class="form-inline" method="post" action='.$url.'>';
foreach ($native as $key => $val) {
$str.='<input type="hidden" name="' . $key . '" value="' . $val . '">';
}
//print_r($str);die;
$str.='</form>';
$str.='</div>';
$str.='</div>';
$str.='</div>';
$str.='</body>';
$str.='</html>';
echo $str;
}