我通过调用外部php函数重新生成输入字段,该函数使用ajax函数生成这些字段,但save函数不保存来自所有字段的数据,但只将最后一行的数据保存到数据库。
用于重新生成这些字段的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 );
}
}
图片显示表单.. 来自所有字段的数据不会进入数据库..
答案 0 :(得分:0)
如果我理解正确,似乎有些表单元素是通过jQuery动态创建的。这些不会发布,因为它们不是原始源代码的一部分,但稍后会添加。
使用on()获取即时创建的字段。 您的参数将是“click”,buttonid,按钮的下一个静态父级。