Home >Backend Development >PHP Tutorial >PHP form提交到某API地址后,接收返回的json的问题

PHP form提交到某API地址后,接收返回的json的问题

WBOY
WBOYOriginal
2016-06-06 20:19:231418browse

PHP的form表单提交后,跳转到新页面,新页面中显示返回的JSON数据。怎么把这个返回的JSON数据保存下来?返回的JSON数据是否可以获取下来,以便处理。只要其中"retData"值

回复内容:

PHP的form表单提交后,跳转到新页面,新页面中显示返回的JSON数据。怎么把这个返回的JSON数据保存下来?返回的JSON数据是否可以获取下来,以便处理。只要其中"retData"值

看题主应该是比较新的新手吧。我猜那个API应该不是你自己的吧,按照楼上的盆友的说法,如果你在前端进行提交的话,用ajax把数据post到对应的API就可以获取相应的结果了。或者你可以自己做个PHP代理,把数据提交到自己创建的PHP,然后在PHP里面使用curl真正把数据post到对应的API,在获取相应的结果后,要怎么处理就随你了。
贴点代码给你吧

<code>function httpPost($url,$params)
{
  $postData = '';
   //create name value pairs seperated by &
   foreach($params as $k => $v) 
   { 
      $postData .= $k . '='.$v.'&'; 
   }
   $postData = rtrim($postData, '&');
 
    $ch = curl_init();  
 
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_POST, count($postData));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);    
 
    $output=curl_exec($ch);
 
    curl_close($ch);
    return $output;
 
}</code>

这样用

<code>$params = array(
   "name" => "Ravishanker Kusuma",
   "age" => "32",
   "location" => "India"
);
 
echo httpPost("http://hayageek.com/examples/php/curl-examples/post.php",$params);</code>

代码摘自这里

可以啊. 不知道你这里是要前端存还是后端存?

表单的话要你php去把这部分逻辑给处理掉了.如果按照你描述的话那么后端应该是给了一个redirect,那你用异步还是可以正常获取到结果的. 不知道这么说能不能懂.

试试curl

curl或者ajax提交

如果是MVC的话,通过View的AJAX提交到Controller,然后通过Curl进行调用相应的接口
http://php.net/manual/zh/book.curl.php

如果用js写,就用ajax;如果是php写,就用curl

他们说的都过于复杂了 如果你只需要跳转页面取值 那就存seesion好了 api存、新页面取

你如果FORM过去的话 就会跳转到别人提供的接口地址了 但是接口不是你的你不能修改 所以一定不能跳转 用AJAX提交或者curl模拟POST提交都可以 这两种方法都会把接口的返回值返回到你自己的页面 方便你接下来处理

他们说的这个跟你说的估计不是同一个事。。。
你说的应该是前端(html)提交数据到一个页面,然后这个页面返回一个json,你想用php保存下来对吧?
那么可以这样写

<code><?php if($_GET['action']=='baocun')
{
$f=fopen("baocun.txt","a");
fwrite($f,file_get_contents("php://input")) or die("err");
die("ok");
}
?>
<script src="jquery.js"></script>
<script>
function tj()
{
$.post("你要提交的页面的地址","a="+$("#a")[0].value+"&b="+$("#b")[0].value,function(r){
$.post("?action=baocun",r,function(s){if(s=="ok"){alert("提交成功");}else{alert("提交失败");}

});
});
}
</script>
<form action="">
<input type="text" name="a" id="a">
<input type="text" name="b" id="b">
<input type="button" value="提交" onclick="tj()">
</form>
</code>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn