Неожиданный конец ввода JSON и не могу понять, почему

Мне сложно понять, почему я получаю сообщение об ошибке в моем js-файле, когда я хочу вернуть свой ajax: JSON.parse (xhr.responseText)

У меня есть файл php, который извлекает эти данные:

 [{Duree: "01:00:00"}, {Duree: "00:30:00"}, {Duree: "01:00:00"}, {Duree:"00:30:00"},…]
0:{Duree: "01:00:00"}
    Duree:"01:00:00"
1:{Duree: "00:30:00"}

Я не могу понять, почему у моего json неожиданный конец. Это мой файл php: Он использует некоторые фильтры запросов, а затем перебирает мой набор объектов, а затем добавляет продолжительность каждого объекта в мой массив и json_encode его.

<?php
session_start();
include '../../Reglage/ConnexionBDD.php';
$Query = "SELECT DISTINCT Intervention.IDIntervention,DateFin,Remarque,Intervention.IDAgent,DateDebut,IDTypeTravaux,IDVacation as Vacation, IDEtat as Etat,DateDebut,Duree,DescriptionTache 
FROM intervention 
JOIN interventionmaincourante ON interventionmaincourante.IDIntervention = intervention.IDIntervention 
JOIN participerintervention ON Intervention.IDIntervention=participerintervention.IDIntervention 
JOIN faire_la_vacation ON participerintervention.IDAgent = faire_la_vacation.IDAgent
WHERE DateVacation = intervention.DateDebut  ";//base de la requete
//SOME SQL FILTERS WHICH ADD CLAUSE IN PRINCIPAL QUERY
//MANY SQL FILTERS
$messagesParPage=100;
$sql = "Select count(*) as NB from Intervention";
$rep = $bdd->query($sql);
$total = $rep->fetch();
$total = $total['NB'];
$nombreDePages=ceil($total/$messagesParPage);

if (intval($_POST['CurrentPage']) != 0) {
    if (isset($_POST['CurrentPage'])) {
    $pageActuelle=intval($_POST['CurrentPage']);
    if ($pageActuelle>$nombreDePages) { // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
        $pageActuelle=$nombreDePages;
    }
}
else { // Sinon
    $pageActuelle=1; // La page actuelle est la n°1
}
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
    $Query .= " order by DateDebut DESC, IDIntervention DESC, Vacation LIMIT ". $premiereEntree . "," . $messagesParPage;
}
else {
    $Query .= " order by DateDebut DESC, IDIntervention DESC, Vacation";
}

$currentID = "";
$lastID = "";
$rep = $bdd->query($Query);
$total = array();
$tot = array();
foreach($rep as $Intervention) {
    $idVacation = 0;
    switch ($_POST['Vacation']) {
        case 'Matin' :
            $idVacation = 1;
            break;
        case 'Apres-Midi':
            $idVacation = 2;
            break;
        case 'Nuit':
            $idVacation = 3;
            break;
        default:
            break;
        }
    if ($Intervention['Vacation'] == $idVacation) {
        $Query = 'SELECT Duree FROM fairegammeoperatoire WHERE IDIntervention=:id';
        $rep = $bdd->prepare($Query);
        $custom = $Intervention['IDIntervention'];
        $rep->bindParam(':id',$custom);
        $rep->execute();
        $Duree = $rep->fetch(PDO::FETCH_ASSOC) ;
        array_push($total,$Duree);
    }
}
echo json_encode($total);

Мой код JS:

tot = '';
var xhr1 = getXhr();
xhr1.onreadystatechange = function(){
    if (xhr1.readyState == 4 && xhr1.status == 200){
        Selection = xhr.responseText;
        for(let i = 0; i < Selection.length; i++) {
            if (i == 0) {
                start = Selection[i];
            }
            if ((i + 1) < Selection.length) {
                end = Selection[i + 1];
                tot = addTimes(start, end);
                console.info(tot);
            }
            start = tot;
        }

        alert(tot);
    }
};
xhr1.open('POST','maincourante/Ajax/AjaxCalculGammeOperatoire.php',true);
xhr1.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr1.send(Send);

Не могли бы вы представить пример JSON точный, созданного вашим кодом? :-) (Из JavaScript, чтобы мы могли видеть, что возвращается на ваш интерфейс)

Philipp Maurer 10.08.2018 11:39

Вы уже закодировали результат PHP как JSON, поэтому вам не нужно его JSON.parse() в Javascript. Это вызовет ошибку!

RiggsFolly 10.08.2018 11:46

Я не понимаю, извините, точный json из JS? после анализа возврата ajax? или раньше?

Guillaume OSTORERO 10.08.2018 11:46

Я делаю это каждый раз, json_encode в моем файле ajax php и в файле JS я получаю результат, используя JSON.parse, и он работает xD

Guillaume OSTORERO 10.08.2018 11:47

НЕ ТРЕБУЕТСЯ ПАРСИРОВАТЬ возвращенные данные, так как это уже JSON.

RiggsFolly 10.08.2018 11:47

Это может помочь, если вы также покажете нам javascript

RiggsFolly 10.08.2018 11:48

Хорошо, я следую вашему совету и не ошибаюсь в JSON =) thx

Guillaume OSTORERO 10.08.2018 11:50

Теперь у меня есть функция AddTimes, которая возвращает (return hours.toString () + ':' + minutes.toString ();)

Guillaume OSTORERO 10.08.2018 11:51

Я хочу сделать сумму каждой продолжительности, которую я получаю на json и alert (результат) ...

Guillaume OSTORERO 10.08.2018 11:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
9
111
0

Другие вопросы по теме