我通过调用一个外部 PHP 函数重新生成输入字段,该函数在 ajax 函数的帮助下生成这些字段,但保存函数不会保存所有字段的数据,而是仅将最后一行的数据保存到数据库中。
用于重新生成这些字段的 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 );
}
}
图像显示了表单。 所有字段的数据都不会进入数据库。