javascript - 在 Google map 上显示搜索查询的结果

标签 javascript php mysql json google-maps-api-3

我正在开发 Google map 应用程序,但遇到了问题。我正在使用 google map api 根据我保存在数据库中的数据库值来创建 map 。我可以把它们拿出来并在 map 上显示多个位置。我正在使用 $.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 数据。但 map 甚至没有显示。我深入控制台并运行了状态代码 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 状态。我想我可以理解为什么,因为它试图多次请求 map 和 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);
?>

希望这对将来的其他人有帮助!

关于javascript - 在 Google map 上显示搜索查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620321/

相关文章:

javascript - 如何根据用户选择获取 JSON 中的子值

javascript - 使用javascript更改表格背景颜色时出现问题

php - 在 MySQL 中使用准备好的语句是否可以防止 SQL 注入(inject)攻击?

MySQL 5.6 - 数据库正在运行,但没有套接字文件

mysql - 如何解决加载数据后重复输入 key 'PRIMARY'

javascript - Ember.Select 中的绑定(bind)操作

javascript - 使用 React-Bootstrap 的网格布局在列中重新定位 div

PHP 扩展与库(以及是否可以转换)

javascript - PHP 和 AJAX 不工作

Mysql 中等 int 与 int 性能