ここではExtJS3を使用しています。送信するフィールドをデータベースのフォームパネルに入力したいと思います。基本的に、フォームにウィッチフィールドが含まれるかどうかはわかりません。データベースから、すべてのフォームパネルアイテムを生成したいと思います。PHPファイルからの応答として渡されるJSON文字列を生成し、フィールドとすべてを含めることができますが、ExtJSでこれを操作する方法を知る必要があります。
何か助けはありますか?
ありがとう。
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
これは古い投稿だと知っていますが、Google検索で最初に表示されたので、とにかくぶつけます。
私はExt.Ajax.requestからJSON文字列を返すことができました。eval()それ(私は知っています、私は知っています、悪です-しかしそれは機能し、Ext.Decodeはとにかくevalを使用します)-そしてevalの結果をに渡しますPanel.add(Ext.ComponentManager.create(eval_result));
これが誰かを助けることを願っています。