繁体   English   中英

使用 GET (PHP:Curl, Javascript) 查询带有表单的 API

[英]Querying an API with form using GET (PHP:Curl, Javascript)

所以问题..请耐心等待(我只是在学习)! :)

我有两个文件(index.php / form_get.php)

index.php 文件有一个表单,用于存储用户提交时的变量,然后 form_get.php 文件在 URL 中使用该变量来请求 json 文件。 但是当我在表单中提交两个字母的国家/地区代码时,我没有得到表单下方的结果,因为我认为我会使用 javascript。

现场表格:<www.caseytetens.com/gettest/index.php>

索引.php

    <html>
    <head>
    <title>Test Covid Country</title>
    <script src="https://code.jquery.com/jquery-latest.js"></script>
    <script>
      function submit_soap(){
        var cc=$("#covid_country").val();
        $.get("form_get.php",{cc:cc},
        function(data){
          $("#json_response").html(data);
        });
    }
    </script>
    </head>
<body>
  <center>
    <h3>Get Covid Country Travel Data</h3>
     <form>
     Country Code: <input name="covid_country" id="covid_country" type="text" /><br />
      <input type="button" value="Submit" onclick="submit_soap()"/>
    </form>
       <br>-----------
      <div id="json_response"></div>
   </center>
</body>
</html>

form_get.php

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.traveladviceapi.com/search/".$cc.,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "X-Access-Token:XXXXXXXXXXXXXXXXX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

任何帮助将不胜感激。

谢谢!

2 认为我在您的代码中注意到了。

  1. CURLOPT_URL => "https://api.traveladviceapi.com/search/".$cc.,你的变量末尾有一个点。
  2. 你必须初始化$cc变量$cc = $_GET['cc'];

form_get.php文件中,您没有检索在index.php文件中传递的数据。 您需要将$_GET['cc']form_get.php文件的顶部以检索 'cc' 值。

<?php
$cc = $_GET['cc'];

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.traveladviceapi.com/search/".$cc,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "X-Access-Token:XXXXXXXXXXXXXXXXX"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM