0

Javascript/jQuery でカスタム テンプレートをセットアップしており、CodeIgniter コントローラーからデータを取得し、返された JSON を js/jQuery テンプレートに挿入する必要があります。私のロジックは正しいと思いますが、何らかの理由で何も機能していないようで、スクリプトの最初に次のエラーが表示されます。

キャッチされていない SyntaxError: 予期しない入力の終わり

どうすればこれを行うことができますか?これまでに書いたコードを以下に示します。

$("#projects").click(function () {
    jQuery.ajax({
        type: "POST",
        dataType: "JSON",
        url: "<?=base_url()?>index.php/home/projectsSlider",
        data: dataString,
        json: {
            returned: true
        },
        success: function (data) {
            if (data.returned == true) {
                $("#content").fadeOut(150, function () {
                    $(this).replaceWith(projectsSlider(), function () {
                        var html = projectsSlider(data.projectId, data.projectName, data.startDate, data.finishedDate, data.createdFor, data.contributors, data.screenshotURI, data.websiteURL);
                        jQuery(html).appendTo("#content").fadeIn();
                    });
                });
            }
        }
    });
});

ここに私のPHPがあります:

function projectsSlider() {
    $query  = $this->db->query("SELECT * FROM projects ORDER BY idprojects DESC");
    foreach ($query->result() as $row) {
        $projectId = $row->projectId;
        $projectName = $row->projectName;
        $startDate = $row->startDate;
        $finishedDate = $row->finishedDate;
        $createdFor = $row->createdFor;
        $contributors = $row->contributors;
        $projectDesc = $row->projectDesc;
    }
    $query1 = $this->db->query("SELECT * FROM screenshots s WHERE s.projectId = '{$projectId}' ORDER BY s.idscreenshot DESC");
    foreach ($query1->result() as $row2) {
        $screenshotURI = $row2->screenshotURI;
        $websiteURL = $row->websiteURL;
    }
    echo json_encode(array('returned' => true,
        'projectId' => $projectId,
        'projectName' => $projectName,
        'startDate' => $startDate,
        'finishedDate' => $finishedDate,
        'projectDesc' => $projectDesc,
        'createdFor' => $createdFor,
        'contributors' => $contributors,
        'screenshotURI' => $screenshotURI,
        'websiteURL' => $websiteURL));
}
}

なぜこれが起こっているのかについてのアイデアはありますか?

4

2 に答える 2

2

問題は、末尾にあるように見えます}

編集:私がリファクタリングしている間に他の誰かが答えましたが、とにかくこのバージョンを提供します:

function projectsSlider() {

    $query  = $this->db->query("SELECT * FROM projects ORDER BY idprojects DESC");
    $project = $query->fetch(PDO::FETCH_OBJECT);
    $project->screenshots = array();

    $query = $this->db->query("SELECT * FROM screenshots WHERE projectId = '$projectId' ORDER BY idscreenshot DESC");

    foreach ($query->result() as $screenshot) {
        $project->screenshots[] = $screenshot;
    }
    echo json_encode(array('returned' => true,'project'=>$project));

}

代わりにオブジェクトをフェッチできるため、ループや変換をすべて行う必要はありません。

于 2012-07-09T21:49:31.510 に答える
0

構文エラーは、コードのロジックとは関係ありません。それはあなたの構文が間違っていることを意味します。それが唯一の PHP コードである場合は}、関数の最後に余分なものがあるために発生しています。これらのハングアップを回避するには、PHP リンターを調べる必要があります。

于 2012-07-09T21:42:31.277 に答える