web-dev-qa-db-ja.com

2つのフィールドのデータをJSON文字列として1つのデータベーステーブルフィールドに保存する方法は?

{name:'1', name2:'2'}のように、DBにjson形式でデータを格納するためのヘルプが必要です。

これまでのところ私はこれを持っています:

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>

これらの2つのフィールドをjsonエンコードされた文字列として1つのDBフィールドに送信する必要があります。

4
yaak

この作業を行うには、PHP関数の両方が必要です。

json_encode:

http://www.php.net/manual/de/function.json-encode.php

json_decode:

http://www.php.net/manual/de/function.json-decode.php

多分このようなもの:

<?php
$arr = array ();
$arr[name] = $this->form->getInput('name');
$arr[name2] = $this->form->getInput('name2');     
echo json_encode($arr);
?>
3
Joomla Agency

これらの2つのフィールドをフォームXMLファイルの要素で囲みます。

<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>

これで、両方のフィールドがjsonデータとしてテーブル列「fieldname」に入力されます(実際のフィールド名に変更してください)。

1
Nagarjun