$ .getJSON всегда терпит неудачу

0

Извиняюсь, если об этом ответили раньше, но я не мог найти то, что искал. Итак, я использую $.getJSON для отправки некоторых переменных в файл php. Файл возвращает успех как истинный, но по какой-то причине всегда запускает функцию.fail.

Странно, все отлично работает на моем ноутбуке, просто не на компьютере в университете. Соединение с базой данных в порядке, как я сказал, все работает, и оно возвращает все правильные данные, но не вызывает функцию успеха.

JQuery:

function request_user_review() {

    $.getJSON("user_review_list.php", success_user_review).fail(fail_user_review);

}

function success_user_review(response) {
    if (response.success) {

        var user_review_list = "";
        $("#user_reviews .review_cafe").remove();
        $("#user_reviews .review").remove();
        $("#user_reviews .rating").remove();
        $("#user_reviews .review_choice").remove();


        for (var i = 0; i < response.rows.length; i++) {
            var review_cafe = '<tr id="row_' + response.rows[i].id + '"><td class="review_cafe">'
                + response.rows[i].cafe + '</td>';
            var review = '<td class="review">'
                + response.rows[i].review + '</br>Review left: ' + response.rows[i].date + '</td>';
            var rating = '<td class="rating">'
                + response.rows[i].rating + '/5</td>';
            var review_choice = '<input type="hidden" class="cafe_id" value="' +  response.rows[i].cafe_id + '" /><td class="review_choice"><button   onclick="request_edit(this.id)" id="edit_' + response.rows[i].id + '" class="btn_edit">Edit</button><button onclick="request_delete_review(this.id)" id="delete_' + response.rows[i].id + '" class="btn_delete">Delete</button></td></tr>';

            user_review_list += review_cafe + review + rating + review_choice;
        }
        $("#user_reviews").html(user_review_list).trigger("create").trigger("refresh");
    } else {
        $("#review_message").html("Review failed to be  loaded!").trigger("create").trigger("refresh");
    }
}

function fail_user_review() {
    $("#review_message").html("Connection down?").trigger("create").trigger("refresh");
}

PHP:

<?php //user_review_list.php
require_once "sql.php"; //connection to database and query is handled here
require_once "logged_in.php";

error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors','On');

$session_id = $_SESSION['userid'][0];

$result = array();
$result['success'] = false;
$query = "SELECT * FROM reviews WHERE user = $session_id;";

if ($result_set = Sql::query($query)) {
    $result['success'] = true;
    $result['message'] = "Your Reviews" ;
    $rows = mysqli_num_rows($result_set);
    $result['rows'] = array();
    for ($i = 0; $i<$rows; $i++) {
        $tmpRow = mysqli_fetch_assoc($result_set);
        $php_date = strtotime($tmpRow['date']);
        $formatted_php_date = date('M d, Y', $php_date );
        $tmpRow['date'] = $formatted_php_date;

        $result['rows'][$i] = $tmpRow;
    }

} else {
    $result['message'] = "Failed to read Reviews" ;
}

print(json_encode($result)); 

Спасибо Джеймсу

  • 0
    Разве print не должна быть echo ?
  • 2
    А в функции сбоя есть несколько аргументов, которые указывают на ошибку, вы смотрели на них?
Показать ещё 12 комментариев
Теги:
getjson

1 ответ

1
Лучший ответ

Сообщения, которые вы получаете, означают, что вы пытаетесь разобрать то, что уже JSON. Мое предыдущее утверждение о разборе JSON здесь не будет иметь особого значения, потому что вы не просто возвращаете строку, которая должна быть преобразована в JSON, что вам действительно не нужно с $.getJSON().

Вы возвращаете JSON с некорректной кодировкой где-то вдоль линии, поэтому попытка разобрать ее не поможет. Подтвердите свой JSON прежде всего (ошибка может быть вызвана разными настройками сервера между машинами) с помощью jsonlint и продолжить оттуда.

  • 0
    ура, отлично!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню