English 中文(简体)
ExtJS load form items/fields from database
原标题:

I am using ExtJS 3 here. I would like to populate a formpanel from database with fields to be submitted. Basically, I don t know witch fields my form will have and I want to generate all formpanel items from database. I could generate a JSON string to be passed as the response from the PHP file with the fields and everything but I need to know how to work with this in ExtJS.

Any help ?

Thanks.

最佳回答

You re going to have to load and send the fields in a format ExtJS understands. The simplest way, if you don t mind coupling directly to the ExtJS format, would be to generate the ExtJS template style on the backend. In that case, your php script would generate something like this:

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

Obviously, you could rearrange this so the "items" array is built up beforehand in a loop, and you can add as many items as you need.

Also, depending on how you set this up, you can also just return the array of items and add them to the form on the fly, removing the need to send the "new Ext.form.. etc" portion, and decoupling your code a little better. Personally, that s the way I d go.

Edit:

In reply to your comment, if you return the JSON array in a proper ExtJS structure, all you ll need to do is use the "panel.add(myItems);" [1] method, and possibly a call to "panel.doLayout();" to force it to re-render nicely.

Check out the details on "components" [2] for how the xtype works.

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

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

问题回答

I know this is an old post, but I ll bump it anyways because it came up first in my Google Search.

I have had luck with returning a JSON String from an Ext.Ajax.request, eval() it (I know, I know, evil - but it works and Ext.Decode uses eval anyways) - then pass the results of the eval into Panel.add(Ext.ComponentManager.create(eval_result));

Hope this helps someone.





相关问题
what is wrong with this mysql code

$db_user="root"; $db_host="localhost"; $db_password="root"; $db_name = "fayer"; $conn = mysqli_connect($db_host,$db_user,$db_password,$db_name) or die ("couldn t connect to server"); // perform query ...

Users asking for denormalized database

I am in the early stages of developing a database-driven system and the largest part of the system revolves around an inheritance type of relationship. There is a parent entity with about 10 columns ...

Easiest way to deal with sample data in Java web apps?

I m writing a Java web app in my free time to learn more about development. I m using the Stripes framework and eventually intend to use hibernate and MySQL For the moment, whilst creating the pages ...

join across databases with nhibernate

I am trying to join two tables that reside in two different databases. Every time, I try to join I get the following error: An association from the table xxx refers to an unmapped class. If the ...

How can I know if such value exists in database? (ADO.NET)

For example, I have a table, and there is a column named Tags . I want to know if value programming exists in this column. How can I do this in ADO.NET? I did this: OleDbCommand cmd = new ...

Convert date to string upon saving a doctrine record

I m trying to migrate one of my PHP projects to Doctrine. I ve never used it before so there are a few things I don t understand. In my current code, I have a class similar to this: class ...

热门标签