Forum Programmation.php PHP7, passage de variable tableau d'un template blade à un autre

Posté par  . Licence CC By‑SA.
Étiquettes :
0
8
avr.
2016

Bonjour et bon vendredi, Robinsons,

J'ai un petit souci avec mon application php qui comporte actuellement un bogue.

L'application c'est un gestionnaire de fichiers en ligne, les fichiers sont soit stockés dans la base de données (si pas trop volumineux) soit sur le système de fichiers du serveur.

J'utilise Laravel 5.0

Pour l'explorateur de fichiers, j'ai deux vues importantes:
vue_liste.blade.php

        $assoc = json_decode($json_str);


        if ($assoc !== NULL) {
        foreach($assoc as $i => $row) {
        $filename = $row['filename'];
        $content = $row['content_file'];
        $id = $row['id'];
        $folder_id = $row["folder_id"];
        $mimeType = $row["mime"];
        $isDirectory = $row['isDirectory'];
        echo "+1;";
        ?>
        @include("note/vue_fichier", array("filename" => $filename,
            "content" => $content, "id" => $id, "folderId" => $folder_id,
            "mimeType" => $mimeType, "isDirectory" => $isDirectory, "sqlStmt" => getLastestSQLStmt()))
        <?php
        }
        } else {
        ?>Dossier vide ou recherche sans r&eacute;sultat(s)<?php
        }
        ?>
    </div>

et vue_fichier.blade.php

La vue fichier n'est pas en cause.

La vue list.blade.php
$json_str = App\Note::toXMLString(\App\Note::getFolder($noteId, $filtre));
Dans cette dernière ligne de code, je fais appel à 2 fonctions getFolder qui renvoie les fichiers du dossier [id=$noteId] par requête SQL (celle-ci fonctionne bien)

Et la fonction toXMLString (très mal nommmée puisque c'est un tableau json qui est retourné.

        global $LONGUEUR_APPERCU;
        $arr = array();
        $i = 1;
        if ($results != false) {
            while ($row = mysqli_fetch_assoc($results)) {
                $arr["$i"] = array();
                $arr["$i"]['filename'] = $row['filename'];
                $arr["$i"]['content'] = $row['content_file'];
                $arr["$i"]['id'] = (int)$row['id'];
                $arr["$i"]['folder_id'] = (int)$row['folder_id'];
                $arr["$i"]['mimeType'] = $row['mime'];
                $arr["$i"]['isDirectory'] = (int)$row['isDirectory'];
                $i++;
            }
            mysqli_free_result($results);

            return json_encode($arr);
        }

J'ai donc json_decode(json_encode($arr)) au total pour passer l'argument par valeur et par référence, ce qui n'est plus permis dans ce contexte.

Me vient une idée : encoder en json, le passer dans une variable javascript et faire tout le traitement d'affichage des dossiers et fichiers en javascript (mais Lourd)

QQN aurait-il une solution à mon problème? Ai-je fait une erreur flagrante?

Oui en fait, je précise mon problème, c'est au niveau du passage d'une variable type tableau, qui me pose problème. Comment faire?

PS: Pas très sérieux ce site… Et je ne vois pas pourquoi il attire autant de pervers…

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.