0

ここではExtJS3を使用しています。送信するフィールドをデータベースのフォームパネルに入力したいと思います。基本的に、フォームにウィッチフィールドが含まれるかどうかはわかりません。データベースから、すべてのフォームパネルアイテムを生成したいと思います。PHPファイルからの応答として渡されるJSON文字列を生成し、フィールドとすべてを含めることができますが、ExtJSでこれを操作する方法を知る必要があります。

何か助けはありますか?

ありがとう。

4

2 に答える 2

1

ExtJSが理解できる形式でフィールドをロードして送信する必要があります。最も簡単な方法は、ExtJS形式に直接結合することを気にしない場合、バックエンドでExtJSテンプレートスタイルを生成することです。その場合、phpスクリプトは次のようなものを生成します。

new Ext.form.FormPanel({
  width: 350,
  defaultType: 'textfield',
  items: [{
    xtype: '<?php echo $field ?>',
    value: '<?php echo $value ?>' 
  }]
});

明らかに、これを再配置して、「items」配列が事前にループで構築され、必要な数のアイテムを追加できるようにすることができます。

また、設定方法によっては、アイテムの配列を返してその場でフォームに追加するだけで、「新しいExt.formなど」の部分を送信する必要がなくなり、コードを分離することもできます。少し良く。個人的には、それが私のやり方です。

編集:

コメントへの返信として、適切なExtJS構造でJSON配列を返す場合は、「panel.add(myItems);」を使用するだけです。[1]メソッド、および場合によっては「panel.doLayout();」の呼び出し うまく再レンダリングするように強制します。

xtypeがどのように機能するかについては、「コンポーネント」[2]の詳細を確認してください。

[1] http://www.extjs.com/deploy/dev/docs/?class=Ext.form.FormPanel

[2] http://www.extjs.com/deploy/dev/docs/?class=Ext.Component

于 2009-11-23T14:24:08.227 に答える
0

これは古い投稿だと知っていますが、Google検索で最初に表示されたので、とにかくぶつけます。

私はExt.Ajax.requestからJSON文字列を返すことができました。eval()それ(私は知っています、私は知っています、悪です-しかしそれは機能し、Ext.Decodeはとにかくevalを使用します)-そしてevalの結果をに渡しますPanel.add(Ext.ComponentManager.create(eval_result));

これが誰かを助けることを願っています。

于 2012-02-01T19:52:38.627 に答える