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. :)
foreach($jsonData->Multi->key as $k => $v){
echo $v . " > " . $jsonData->Multi->value[$k];
}
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.