0

我通过调用一个外部 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 );
}
}

图像显示了表单。如附件所示。。 所有字段的数据都不会进入数据库。

4

1 回答 1

0

如果我理解正确,似乎某些表单元素是通过 jQuery 动态创建的。这些将不会发布,因为它们不是原始源代码的一部分,而是稍后添加的。

使用on()获取动态创建的字段。您的参数将是“单击”、按钮 ID、按钮的下一个静态父级。

于 2012-07-24T09:06:00.530 回答