ajax関数を使用してこれらのフィールドを生成する外部PHP関数を呼び出して入力フィールドを再生成しますが、保存関数はすべてのフィールドからデータを保存するのではなく、最後の行のデータのみをデータベースに保存します..
これらのフィールドを再生成する ajax 関数のコードは次のようになります。
var counter = 0;
function loadfields_addmore(checked)
{
$jd.ajax({
url: "<?php echo JURI::root(); ?>",
type: "POST",
data: {'option':'com_joomd', 'view':'itempanel', 'task':'loadfields', 'typeid':<?php echo $this->cparams->typeid; ?>, 'catid[]':checked, 'id':<?php echo (int)$this->item->id; ?>, "<?php echo jutility::getToken(); ?>":1, 'abase':1}
});
}
保存プロセスをトリガーする保存ボタンの場合:
function save(task) {
var data = $jd("form[name='<?php echo $array['editform']; ?>']").serializeArray();
$jd.ajax({
url: "<?php echo $url; ?>",
type: "POST",
dataType:"json",
data: data
});
}
実際の保存機能は次のようになります。
function store()
{
foreach($post['cats'] as $cat) {
$query = 'insert into #__joomd_item_cat values('.$cat.', '.$row->id.')';
$this->_db->setQuery( $query );
}
}
画像はフォームを示しています.. すべてのフィールドからのデータがデータベースに送られるわけではありません..