在谷歌地图上显示来自搜索查询的结果
Show results on Google Maps from search query
我正在开发谷歌地图应用程序,但我遇到了一个问题。我正在使用谷歌地图 api 根据我保存在数据库中的数据库值创建地图。我可以把它们拿出来,在地图上显示多个位置。我正在使用 $.getJSON 函数来获取存储查询的页面:
$.getJSON("get_markers.php",{
format: "json",
dataType: 'json',
contentType: "application/json; charset=utf-8"},
function(json)
{
addMarkers(json);
console.log(json);
});
}
PHP 文件:
<?php
require 'functions/functions.php';
$conn = connect_to_db();
$response = array();
$query = get_post_by_cat('bedrijven', 'ict', $conn);
foreach ($query as $post) {
$response[] = array(
'name' => $post['naam'],
'lat' => $post['latitude'],
'lng' => $post['longtitude'],
);
}
echo json_encode($response);
?>
关键是,这很好用。但是,我希望它在有人使用搜索栏时起作用。所以我创建了它,它可以完美地获取数据和 JSON 数据。但是地图甚至没有显示。我深入研究了我的控制台并遇到了状态代码 304,经过一些研究后我发现,这意味着我对我正在使用的 API 发出了太多请求。我试过这个:
$.getJSON("search.php",{
format: "json",
dataType: 'json',
contentType: "application/json; charset=utf-8"},
function(json)
{
addMarkers(json);
console.log(json);
});
}
搜索 PHP 文件:
<?php
require 'functions/functions.php';
$conn = connect_to_db();
if(isset($_POST['submit']))
{
$search = $_POST['query'];
echo $search;
$query = get_post_by_cat('bedrijven', $search, $conn);
if ($query)
{
foreach ($query as $post)
{
?> <h1 id="test"><?php echo $post['naam'] ?></h1>
<p><?php echo $post['plaats'] ?></p>
<p><?php echo $post['categorie'] ?></p>
<?php
}
}
else
{
echo 'error';
}
}
?>
这给了我304状态。我想我可以理解为什么,因为它试图多次请求地图和jQuery。
jquery.min.map
ajax.googleapis.com/ajax/libs/jquery/1.10.2
GET
304
Not Modified
jquery.js
ajax.googleapis.com/ajax/libs/jquery/1.10.2
GET
304
Not Modified
我该如何解决这个问题?说真的,如果这个问题解决了,非常感谢。我希望这在将来会有用。
好消息。我自己发现了!
我认为这不应该是最好的方法,但它对我有用。我将 POST 查询从搜索栏转换为 javascript,并将其作为参数发送到数据库中的数据变为 JSON 的文件。
var query = '<?php echo json_encode($_POST["query"]); ?>';
$.getJSON("get_markers.php?s=" + query,{
format: "json",
dataType: 'json',
contentType: "application/json; charset=utf-8"},
function(json)
{
addMarkers(json);
console.log(json);
});
}
然后在get_markers文件中:
<?php
require 'functions/functions.php';
$conn = connect_to_db();
$search = $_GET['s'];
$response = array();
$query = get_post_by_cat('bedrijven', $search, $conn);
foreach ($query as $post) {
$response[] = array(
'name' => $post['naam'],
'lat' => $post['latitude'],
'lng' => $post['longtitude'],
);
}
echo json_encode($response);
?>
希望这在未来对其他人有所帮助!
相关文章:
- 在字符串中传递_id和搜索查询
- 如何根据搜索查询更改着陆页
- 如何修改订阅上的搜索查询
- 我是否阅读了搜索查询中的所有推文
- 如何在php和javascript中使用regex检测空格分隔词(在全文搜索查询中)
- Javascript-来自关键字“;某事“;谷歌搜索查询“;什么的&”;
- 更改字符串中's已从搜索查询中返回
- 如何在Spotify中使用高级搜索查询
- 在谷歌地图上显示来自搜索查询的结果
- 为什么 js 和 html 代码没有运行搜索查询
- 如何对谷歌 API 搜索查询进行编码
- 如何在我的内容脚本中获取 Google 搜索查询字符串
- 使用 JSON 新闻 API 创建搜索查询
- 从 jQuery 中的 URL 中提取搜索查询
- JavaScript 在整个站点中持久化搜索查询
- 保存用户以前的搜索查询
- 搜索查询>填充下拉字段
- 如何在搜索查询中只排除#、$、%等特殊字符并包括字母表和数字
- 直接从PHP搜索查询链接到URL
- Mongodb搜索查询-返回所有结果(不匹配的)