【发布时间】:2014-05-07 01:58:00
【问题描述】:
我正在添加一个我设计用于 joomla K2 模块的地图系统。 Joomla 系统目前使用以下代码来输出每个项目的信息。
<ul>
<?php foreach ($item2->extra_fields as $key=>$extraField): ?>
<?php if($extraField->value != ''): ?>
<li class="<?php echo ($key%2) ? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
<?php if($extraField->type == 'header'): ?>
<h4 class="itemExtraFieldsHeader"><?php echo $extraField->name; ?></h4>
<?php else: ?>
<span class="itemExtraFieldsLabel"><?php echo $extraField->name; ?>:</span>
<span class="itemExtraFieldsValue"><?php echo $extraField->value; ?></span>
<?php endif; ?>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
输出如下所示:
- 名字:乔治
- 姓氏:拉姆齐
- 公园部分:宁静花园
- 墓地:D15
现在在一个名为 default.php 的文件中,我输入了以下代码来显示地图。现在完成了,我需要它在地图中创建一个弹出窗口,显示每个项目/人的信息。我计划使用前面提到的 php 代码来执行此操作。这是一个应该是什么样子的示例http://visuarch.net/map/dovecot-map.html
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.css" />
<!--[if lte IE 8]>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.ie.css" />
<![endif]-->
<script src="http://cdn.leafletjs.com/leaflet-0.6.4/leaflet.js"></script>
<script>
function init() {
var mapMinZoom = 3;
var mapMaxZoom = 8;
var map = L.map('map', {
maxZoom: mapMaxZoom,
minZoom: mapMinZoom,
}).setView([70, -100], mapMaxZoom);
var mapBounds = new L.LatLngBounds(
map.unproject([0, 27136], mapMaxZoom),
map.unproject([50176, 0], mapMaxZoom));
map.fitBounds(mapBounds);
L.tileLayer('http://visuarch.net/map/{z}/{x}/{y}.png', {
minZoom: mapMinZoom, maxZoom: mapMaxZoom,
bounds: mapBounds,
attribution: 'Copyright © 2014 Dovecot of St. James Memorial Park.',
noWrap: true
}).addTo(map);
map.attributionControl.setPrefix('');
var plotset3 = [
[80.1261, -101.7334],
[80.93535, -90.54932],
[78.90816, -85.979],
[77.82332, -96.45996]
];
var plotset4 = [
[69.95291, -57.78809],
[68.22052, -69.16992],
[70.83025, -73.125],
[72.44879, -61.25977]
];
var plotset5 = [
[68.24497, -68.18115],
[68.19605, -60.6665],
[66.80057, -60.64453],
[66.86972, -68.20312]
];
var plotset6 = [
[66.19601, -67.03857],
[66.39036, -58.97461],
[60.72694, -53.23975],
[59.84481, -56.88721],
[59.22093, -56.25],
[58.43623, -59.43604]
];
var plotset = L.polygon([ plotset3, plotset4, plotset5, plotset6], {
color: "#000",
weight: 1,
}).addTo(map);
var popup = L.popup()
.setLatLng([73.64017, -100.32715])
.setContent( "<h4><center><b>JOHN DOE</b></center></h4> <center><img src='http://visuarch.net/dovecot/media/k2/items/cache/48ee1e8a0a8f50dce4f8cb9ab418e211_XS.jpg' border='1px'> </center><br>Section:<b> Park Section</b> <br> Plot ID:<b> J15</b>"
)
.openOn(map);
}
jQuery(document).ready(function() {
init();
});
</script>
这是我用于示例的代码:
var popup = L.popup()
.setLatLng([73.64017, -100.32715])
.setContent( "<h4><center><b>JOHN DOE</b></center></h4> <center><img src='http://visuarch.net/dovecot/media/k2/items/cache/48ee1e8a0a8f50dce4f8cb9ab418e211_XS.jpg' border='1px'> </center><br>Section:<b> Park Section</b> <br> Plot ID:<b> J15</b>")
.openOn(map);
我只需要知道如何使用.setContent部分中的php来输出我需要的信息。
请帮忙!!!
尽可能详细我不擅长 javascript。
谢谢。
【问题讨论】:
-
看起来 .setContent 正在客户端注入 html,因为 javascript 在客户端上运行。 Php 在服务器端运行,所以我不认为你可以做你想做的事情并让它按照你期望的方式工作。
-
有趣....那么你会推荐我做什么? @dboals 我如何调用和输出信息?
-
一些 ajax 可以完成这项工作。它会调用一个 php 脚本来获取你想要的任何数据。
-
好吧,别小看我,但你能告诉我具体该怎么做吗?我还是个编程新手。我只擅长 HTML、CSS 和一点 javascript。这是我在这个项目上要做的最后一点,明天实际上是最后期限。请帮忙!如果你需要,我会让你访问这些文件。@melsi
-
您将把
default.php文件放在哪里?您想修改 k2 模块以显示地图或将其显示在其他地方的单独页面上,而不必将模块放在那里?
标签: javascript php if-statement joomla joomla-k2