gpt4 book ai didi

javascript - 刷新页面中的 PHP 函数

转载 作者:行者123 更新时间:2023-11-29 23:20:34 26 4
gpt4 key购买 nike

我在 PHP 中有一个函数,它从我的数据库中获取所有“标记”,这些标记被加载到谷歌地图上。

我在同一页面上还有一个 AJAX 表单,它允许用户向数据库添加更多“标记”。

我希望在提交 AJAX 表单时,标记立即显示在 map 上。

目前的问题是 PHP 仅在页面加载时呈现一次,因此如果我想查看更新后的标记,则必须手动重新加载页面。

是否可以为我的 AJAX 提交按钮分配一个函数来刷新我页面中的 PHP?

<?php  $markerArray = getMarkers();

$allMarkers = array();

for($x=0; $x<sizeof($markerArray); $x++)
{
array_push($allMarkers,$markerArray[$x]['json']);
}

$allMarkersJson = json_encode($allMarkers, JSON_UNESCAPED_SLASHES); ?>


<script>

var allMarkers = <?php echo $allMarkersJson ?>;

var markerMap = allMarkers.map(function(e) {
return JSON.parse(e);
});


for(x=0;x<markerMap.length;x++){
var thisMarker = markerMap[x];

var marker = new google.maps.Marker({

position: thisMarker.geometry.location,
title:"this is marker " + x
});



$("#saveToDatabase").click(function(){

var bounds = new google.maps.LatLngBounds();
var place = searchBox.getPlaces();
var locationJson = JSON.stringify(place[0]);

$.ajax({
type: "POST",
url: "insertLocation.php",
dataType:"json",
data: {
locationJson : locationJson
},

cache: false,
success: function(result){

window.alert("successful upload!");

}});
});

</script>

最佳答案

当然PHP确实有这样的功能,但是你需要这样修改代码:
1.在 php 的某处创建

public function getMarkersJSON(){
$markerArray = getMarkers();
$allMarkers = array();

foreach($markerArray as $value){
$allMarkers[] = array_pop($markerArray)['json'];
}

return json_encode($allMarkers, JSON_UNESCAPED_SLASHES);
}

2。在 java 脚本部分将您的初始化代码包装到函数中

var allMarkers = <?= getMarkersJSON() ?>;

function initMap(allMarkers){
var markerMap = allMarkers.map(function(e) {
return JSON.parse(e);
});

for(x=0;x<markerMap.length;x++){
var thisMarker = markerMap[x];
var marker = new google.maps.Marker({
position: thisMarker.geometry.location,
title:"this is marker " + x
});
}

3。接下来在文档准备好时调用此函数

$(function(){
initMap(allMarkers);
});

4.现在,在您发布位置后,向服务器端发出 ajax 请求,返回函数 getMarkersJSON() 的结果。然后用响应调用你的 JS 函数 initMap()。

initMap([...your respose...])

这就是你的问题的答案,对我来说,你不需要这样的东西。
你已经将你的点发布到服务器,你不需要担心重新加载时丢失数据。因此,您无需从服务器更新所有 map 点,只需添加一个新 map 点,或使用您在客户端已有的数据刷新孔图。就在您制作和 AJAX 发布之后,使用最近发布的数据更新了客户端 map 。只需将发送的位置添加到您的 map 或根据需要将其删除,具体取决于客户操作。

关于javascript - 刷新页面中的 PHP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50854009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com