J'ai besoin d'aide pour stocker des données au format JSON dans ma base de données, comme {name:'1', name2:'2'}
.
Jusqu'ici j'ai ceci:
model/form/category.xml:
<fieldset>
<field
name="name"
type="text"
label="name"
/>
<field
name="name2"
type="text"
label="name"
/>
</fieldset>
view/category/tmpl/edit.php:
<?php echo $this->form->getInput('name'); ?></li>
<?php echo $this->form->getInput('name2'); ?></li>
J'ai besoin d'envoyer ces 2 champs sous forme de chaîne codée JSON dans 1 champ DB.
Vous avez besoin des deux PHP fonctions pour effectuer ce travail:
json_encode:
http://www.php.net/manual/de/function.json-encode.php
json_decode:
http://www.php.net/manual/de/function.json-decode.php
Peut-être quelque chose comme ça:
<?php
$arr = array ();
$arr[name] = $this->form->getInput('name');
$arr[name2] = $this->form->getInput('name2');
echo json_encode($arr);
?>
Placez ces deux champs dans un élément de votre fichier XML de formulaire.
<fields label="COM_COMPONENTNAME_FIELDNAME_FIELDSET_LABEL" name="fieldname">
<fieldset label="COM_COMPONENTNAME_FIELDNAME_FIELDSET_LABEL" name="basic">
<field name="name" type="text" label="name"/>
<field name="name2" type="text" label="name"/>
</fieldset>
</fields>
Maintenant les deux champs iront comme données JSON dans la colonne de table "nom de champ" (changez-la en votre nom de champ actuel)