Extraire un object(stdClass) en string

Par donny, il y a 10 ans


Salut,

Je suis entrain d'essayer un systeme d'input infinie, par exemple l'utilisateur puisse ajouter des champs comme il le souhaite je m'explique.

Formulaire 1

De base il y a 2 champs Nom,prenom en suite j'ai pa possibilite d'ajouter d'autre champ par exemple ville, adresse etc.

J'enregistre le tout dans ma table "multis" qui elle contient id, et value j'enregistre le tout sous format json

Voici ma methode d'enregistrement:

public function add() { if($this->request->is('post')) { $insert = json_encode($this->request->data); $data = []; $data['Multi']['value'] = $insert; $this->Multi->save($data); } }

L'enregistrement se passe bien, par contree l'affiche c'est une autre histoire, je peux afficher que mon array en json depuis fonction debug comme ici:

public function index() { $fetchValue = $this->Multi->find('all'); foreach($fetchValue as $items) { $jsonSrc = $items['Multi']['value']; $jsonData = json_decode($jsonSrc,true); debug($jsonData); } }

Et voila les informations retournee:

object(stdClass) { Multi => object(stdClass) { key => array( (int) 0 => 'Input 1', (int) 1 => 'Input 2', (int) 2 => 'Input 3' ) value => array( (int) 0 => 'Valeur input 1', (int) 1 => 'Valeur input 2', (int) 2 => 'Valeur input 3' ) } }

Mon objectif c'est d'essayer d'afficher les donnees correctement par exemple:

<label>Input 1</label>
<p>Valeur input 1</p>
etc
J'espere que j'etais precis dans mes explications et vous remercie pour l'aide. :)

4 réponses

Grafikart, il y a 10 ans

Une petite boucle foreach ne suffit pas ?

donny, il y a 10 ans

En fait j'arrive a recuperer depuis mon foreach mais pour la transformation des donnees j'ai un peu de mal a affichier par exemple
<label> Input 1></label>
<p>Valeur 1</p>

C'est au moment du decode du json que je bloque

PS: desole du temps de reponse.

Grafikart, il y a 10 ans
foreach($jsonData->Multi->key as $k => $v){ echo $v . " > " . $jsonData->Multi->value[$k]; }
donny, il y a 10 ans

J'ai resoulu le probleme, merci pour l'aide @Grafikart :)