如何将从谷歌自定义搜索API获取的数据放入复选框列表

How to put the data taken from google custom search API to checkbox list

本文关键字:数据 列表 复选框 获取 API 谷歌 搜索 自定义      更新时间:2023-09-26

我有一个从谷歌自定义搜索API获取数据的代码,自定义搜索API部分没有错,它检索数据没有任何错误

<html>
  <head>
    <title>JSON Custom Search API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
    var pageName = new Array();
    var pageLink = new Array();
    var pageDetails = new Array();
      function hndlr(response) {
      for (var i = 0; i < response.items.length; i++) {
       var item = response.items[i];
        pageName[i] = item.title;
        pageLink[i] = item.link;
        pageDetails[i] = item.htmlSnippet;
      }
    }
    // Some codes
    var search_query = 'https://www.googleapis.com/customsearch/v1?key=MY_KEY&cx=XXXXXXXXX&q='+query+'&start=1&callback=hndlr';
    s = document.createElement('script');
    s.src = search_query;
    document.getElementsByTagName('head')[0].appendChild(s); 
    </script>     
  </body>
</html>

所需数据保存在页面名称、页面链接和页面详细信息数组中
现在我想用车钥匙箱显示它们并允许用户选择它们。
我需要获取所选站点的链接(pageLink 变量)并使用 POST 方法
将其传递给另一个文件我尝试在正文标签()结束之前使用下面的代码

<form action="b.php" method="post">
<script>
for (var j = 0; j < 5; j++) {
document.write("<input type='checkbox' name='formDoor[]' id='"+j+"' value= '' />"+pageName[j]+"<br />"); 
document.getElementById(j).value = pageLink[j]; 
}
</script>
<input type="submit" name="formSubmit" value="Submit" />
</form>  

但在另一个文件中,它说变量是未定义的。 似乎变量没有传递给"b.php"文件

谁能告诉我怎么做?

您当前用于添加复选框的代码可能会在搜索结果到达之前(即:在执行hndlr之前)执行,因此所有数组仍然是空的。解决方案是将复选框创建代码移动到hndlr函数中。

这是固定页面。

<html>
  <head>
    <title>JSON Custom Search API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <form id="bform" action="b.php" method="post">
      <input type="submit" name="formSubmit" value="Submit" />
    </form>
    <script>
    var pageName = new Array();
    var pageLink = new Array();
    var pageDetails = new Array();
    function hndlr(response) {
      var f=document.getElementById('bform'), prev=f.children[0];
      for (var i = 0; i < response.items.length; i++) {
        var ele, item = response.items[i];
        pageName[i] = item.title;
        pageLink[i] = item.link;
        pageDetails[i] = item.htmlSnippet;
        ele = document.createElement('BR');
        f.insertBefore(ele, prev);
        prev = ele;
        ele = document.createTextNode(pageName[i]);
        f.insertBefore(ele, prev);
        prev = ele;
        ele = document.createElement('INPUT');
        ele.type = 'checkbox';
        ele.name = 'formDoor[]';
        ele.id = i;
        ele.value = encodeURI(pageLink[i]);
        f.insertBefore(ele, prev);
        prev = ele;
      }
    }
    // Some codes
    var search_query = 'https://www.googleapis.com/customsearch/v1?key=MY_KEY&cx=XXXXXXXXX&q='+query+'&start=1&callback=hndlr';
    s = document.createElement('script');
    s.src = search_query;
    document.getElementsByTagName('head')[0].appendChild(s); 
    </script>
  </body>
</html>