我正在使用Google Map API从邮政编码查找中检索城市+州/地区信息.问题是,在某些情况下,邮政编码查找不会检索城市名称.一个例子是92625(美国).
var g = new GClientGeocoder();
g.setBaseCountryCode('US');
g.getLocations('92625', function(response){
if (response) {
var place = response.Placemark[0];
var state = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
GLog.write("City = "+city+" : State/Region = "+state+" : Country = " + g.getBaseCountryCode());
}
});
Run Code Online (Sandbox Code Playgroud)
在某些情况下,如上所述,结果中不会有城市名称,因此城市将存在未定义的错误,因为关键位置不存在.此错误会阻止脚本的其余部分运行.
我能够通过...来弥补它
if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality != null)
var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
else
var city = '';
Run Code Online (Sandbox Code Playgroud)
...但这让我对其他键的类似错误感到偏执.例如:如果未定义AdministrativeArea,则上述IF语句也会导致未定义的错误.那么我应该检查每个Key/Node是否存在?似乎是一个混乱的方法,因为其中一些键是5级以上的深度...是否有一个更容易的方法,也许一些我不熟悉的JQuery方法?
我的网站上有一个用于邀请朋友的表单.这是一个简单的文本字段和一个提交按钮.如果有错误,我会重定向回此页面并显示错误消息(如果它们是会话变量集).
if (isset($_SESSION['invite_error'])) {
echo $_SESSION['invite_error'];
unset($_SESSION['invite_error']);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我离开此页面并返回到该页面,则仍会显示错误消息.如果我离开并再次回来,它将会完成.当我刷新那个页面时它是一样的... 1刷新不会摆脱它,但2会.我不能破坏整个会话,我只是想取消设置这个变量.PHP版本是5.2.5 build 6,注册全局变量是关闭的,我在这个页面的顶部调用了session_start(),我也尝试过使用no-cache标头.
编辑:添加完整代码.
<?php
ob_start();
session_start();
$user_id = $_SESSION['user_id'];
$user_name = $_SESSION['user_name'];
if ($user_id==null) header("Location: /login.php");
if (isset($_SESSION['invite_errors'])) {
$error = $_SESSION['invite_errors'];
unset($_SESSION['invite_errors']);
}
require_once("ui/header.php");
?>
<div id="invite" class="content">
<?php if($error) { ?>
<div class="errors round">
<?php echo $error ?>
</div>
<?php } ?>
<h3>Invite Your Friends</h3>
<div class="invite-form">
<form method="post" action="controllers/invite.php">
<div class="row">
<textarea class="txt-area" name="emails" id="emails" rows="5"></textarea>
<div class="tip">Separate multiple email addresses with ,</div>
</div>
<div class="row-submit">
<input …
Run Code Online (Sandbox Code Playgroud) 我想知道专家在编写CSS代码时会做些什么.使用tagname.className样式是不是很糟糕?继承会导致明显的性能损失吗?它只会在加载页面时影响浏览器吗?例如:用户向下滚动页面,在查看具有大量结果的页面时,可怜的CSS是否会成为缓慢滚动的罪魁祸首?
CSS示例:
div.result-row{...}
div.result-row div.photo-column{...}
div.result-row div.main-column{...}
div.result-row div.main-column div.text-row{}
div.result-row div.main-column div.date-row{}
div.result-row div.action-column{...}
Run Code Online (Sandbox Code Playgroud)
VS
div.result-row{...}
div.photo-column{...}
div.main-column{...}
div.action-column{...}
div.text-row{...}
div.date-row{...}
Run Code Online (Sandbox Code Playgroud)
我的页面输出了很多像这样的用户帖子......
<div class="result-row clearfix">
<div class="photo-column">
<img src="..." />
</div>
<div class="main-column">
<div class="text-row">
User's text
</div>
<div class="date-row">
Today
</div>
</div>
<div class="action-column">
<a href="#">...</a>
<a href="#">...</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 可以使用Google地图API来检索特定邮政编码或城市+地区组合的纬度和经度,以用于外国,例如英国联合王国,法国,意大利,日本,澳大利亚等.
我正在开发一个需要本地搜索结果的项目.对于国内用户,我通过我们数据库中的美国邮政编码表检索他们的纬度/经度.它不涉及显示任何地图,只是通过基于纬度/经度值的半径公式显示其区域内其他用户的结果.对于外国用户的本地搜索结果:我只是根据匹配的城市名称显示结果.
目前,通过PHP GeoIP数据检索非美国用户lat/lon.我希望能够根据用户提供的城市+地区或邮政编码检索更准确的值.
我正在考虑为其他国家/地区提供邮政编码表(其中包含lat/lon字段).或者Google Map API的想法是更好的解决方案吗?
我在页面上显示来自用户的一堆帖子.我有一个主要的父div,类名为'posts',每个帖子都输入一个div,里面有类名'row'.所以在div.posts里面有很多div.row.每个看起来都像这样.
<div class="row clearfix">
<div class="left-column">
<img src="..." title="" />
</div>
<div class="main-column">
<div class="row-text">Post Text...</div>
<div class="row-date">Posted Date...</div>
</div>
<div class="actions-column">
<a href="#">Link</a>
<a href="#">Link 2</a>
<a href="#">Link 3 etc.</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
通过CSS,actions-column默认设置为display:none.当用户将鼠标悬停在帖子(div.row)上时,我想显示actions-column.我最初的做法是通过为每一行设置一个鼠标悬停,这会对浏览器产生影响并减慢速度.我做了一些研究,偶然发现了事件授权,并决定尝试一下.到目前为止,我能够确定哪一行是目标,但是,我无法弄清楚如何使用类'actions-column'来定位它的child-div.
代码到目前为止......
$(window).load(function(){
$('.posts').mouseover(function(e){
var $row, $tgt = $(e.target);
if ($tgt.hasClass("row")) {
$row = $tgt;
} else {
if ($tgt.parent().parent().hasClass('row'))
$row = $tgt.parent().parent();
else if ($tgt.parent().hasClass('row'))
$row = tgt.parent();
else
return false;
}
//code here to select div.actions-column and show it
});
$('.posts').mouseover(function(e){
var $row, $tgt = …
Run Code Online (Sandbox Code Playgroud) google-maps ×2
php ×2
browser ×1
css ×1
geocoding ×1
javascript ×1
jquery ×1
json ×1
performance ×1
session ×1