小编Set*_*eth的帖子

检查是否存在JSON密钥/节点

我正在使用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方法?

javascript json google-maps

15
推荐指数
1
解决办法
4万
查看次数

解决会话变量的问题

我的网站上有一个用于邀请朋友的表单.这是一个简单的文本字段和一个提交按钮.如果有错误,我会重定向回此页面并显示错误消息(如果它们是会话变量集).

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)

php session session-variables

6
推荐指数
2
解决办法
4万
查看次数

CSS性能问题

我想知道专家在编写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)

css browser performance

5
推荐指数
1
解决办法
641
查看次数

获取美国以外地区的纬度和经度

可以使用Google地图API来检索特定邮政编码或城市+地区组合的纬度和经度,以用于外国,例如英国联合王国,法国,意大利,日本,澳大利亚等.

我正在开发一个需要本地搜索结果的项目.对于国内用户,我通过我们数据库中的美国邮政编码表检索他们的纬度/经度.它不涉及显示任何地图,只是通过基于纬度/经度值的半径公式显示其区域内其他用户的结果.对于外国用户的本地搜索结果:我只是根据匹配的城市名称显示结果.

目前,通过PHP GeoIP数据检索非美国用户lat/lon.我希望能够根据用户提供的城市+地区或邮政编码检索更准确的值.

我正在考虑为其他国家/地区提供邮政编码表(其中包含lat/lon字段).或者Google Map API的想法是更好的解决方案吗?

php google-maps geocoding

5
推荐指数
1
解决办法
1577
查看次数

jQuery事件委派+儿童目标帮助

我在页面上显示来自用户的一堆帖子.我有一个主要的父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)

jquery event-delegation

3
推荐指数
1
解决办法
2223
查看次数