1

我有一个 Web 应用程序,我从 mysql 数据库中获取数据,并在车把模板的帮助下将其放入网站。

首先,我使用的 PHP 看起来是这样的:

<?php

function isXHR() {
    return isset( $_SERVER['HTTP_X_REQUESTED_WITH'] );
}


function connect(){
    global $pdo;
    $pdo = new PDO("mysql:host=localhost;dbname=personal", "user", "password");
}

function get_blog_posts( ) {
    global $pdo;

    $stmt = $pdo->prepare('
        SELECT url, title, location, date, author, content, thmb 
        FROM photolog
        LIMIT 50');
    $stmt->execute();

    return $stmt->fetchAll( PDO::FETCH_OBJ );
}

然后我使用我在内部调用的 javascript 函数,document.ready(...)如下所示:

function loadBlogPosts(){
    var photos = {
    init: function( config ) {
        this.config = config;

        this.setupTemplates();
        this.fetchphotos();
        this.helpers();

        $.ajaxSetup({
            url: 'index.php',
            type: 'POST'
        });

    },

    setupTemplates: function() {
        this.config.photoListTemplate = Handlebars.compile( this.config.photoListTemplate);
    },

    helpers: function(){
        Handlebars.registerHelper("foreach",function(arr,options) {
        if(options.inverse && !arr.length)
            return options.inverse(this);

        return arr.map(function(item,index) {
            item.$index = index;
            item.$first = index === 0;
            item.$last  = index === arr.length-1;
            item.$rest  = index >= 1;
            return options.fn(item);
        }).join('');
    });
    },

    fetchphotos: function() {
        var self = photos;

        $.ajax({
            dataType: 'json',
            success: function(results) {
                self.config.photosList.empty();

                for(i=0;i<results.length;i++){
                    results[i].author = results[i].author.toLowerCase();
                    results[i].title = results[i].title.toUpperCase();
                    results[i].location = results[i].location.toUpperCase();
                }
                if ( results[0] ) {
                    self.config.photosList.append( self.config.photoListTemplate( results.reverse() ) );
                } else {
                    self.config.photosList.append('<li>Nothing returned.</li>');
                }
            }
        });

    }
};

photos.init({
    photoListTemplate: $('#photo_blog_template').html(),
    photosList: $('div#blog_list')
});
}

然后将数据放入模板中:

<div id="blog_list">
                <script id="photo_blog_template" type="text/x-handlebars-template">
                    {{#foreach this}}
                    {{#if $first}}
                        <div class="4u">
                            <div class="photo">
                                    <a id="single_image" href="{{url}}"><img src="{{thmb}}" alt=""/></a>
                            </div>
                        </div>

                        <div class="8u post">
                            <header>
                                <h2>{{title}}</h2>
                                <h3>{{location}}</h3>
                                <div class="antet">
                                    <div class="author">{{author}}</div>
                                    <div class="date">{{date}}</div>
                                </div>
                            </header>
                            <p>{{content}}</p>
                        </div>

                    {{/if}}
                    {{#if $rest}}
                        <div class="3u post-small">
                            <div class="photo">
                                    <a id="single_image" href="{{url}}"><img src="{{thmb}}" alt=""/></a>
                            </div>
                            <header>
                                <h2>{{title}}</h2>
                                <h3>{{location}}</h3>
                                <div class="antet">
                                <div class="author-small">{{author}}</div>
                                <div class="date-small">{{date}}</div>
                            </div>
                            </header>
                            <p>{{content}}</p>
                        </div>          
                    {{/if}}
                    {{/foreach}}
                </script>
        </div>

问题出现在新的 android 浏览器上,在我关闭应用程序/页面并使用 ctrl+shift+T 打开它之后。它不显示页面,它只显示 json 文件。该页面位于 stefanperju.com

4

0 回答 0