0

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 );
}
}

画像はフォームを示しています..添付ファイルに示すように.. すべてのフィールドからのデータがデータベースに送られるわけではありません..

4

1 に答える 1

0

私が正しく理解していれば、いくつかのフォーム要素がjQueryを介してオンザフライで作成されているようです。これらは元のソースコードの一部ではなく、後で追加されたため、投稿されません。

on()を使用して、その場で作成されたフィールドを取得します。パラメータは「クリック」、buttonid、ボタンの次の静的な親になります。

于 2012-07-24T09:06:00.530 に答える