проблема сombo и ajax
Здрасти.Ext_js начал изучать недавно.Пытаюсь написать простую программу,надо в combobox из базы загрузить информацию,но в результате в combo ничего нет.Помогите пожалуйста.Вот код javascript:
Ext.onReady(function(){ Ext.QuickTips.init(); var genres = new Ext.data.SimpleStore({ reader: new Ext.data.JsonReader({ fields:['id','genre_name'], root:'rows' }), proxy:new Ext.data.HttpProxy({ url:'submit.php' }) }); genres.load(); var movie_form = new Ext.form.FormPanel({ url:'submit.php', renderTo:document.body, frame:true, title:'Movie Information Form', width:250, items:[{ xtype:'combo', name:'genre', fieldLabel:'Genre', mode:'local', store:genres, displayField:'genre', width:120 }] }); }); |
что с сервера приходит ?
|
{rows:[{"id":"1","genre_name":"2323"},{"id":"2","genre_na me":"sdqer"}]}
|
Надо бы вот так
Цитата:
|
displayField:'genre'
мб displayField:'genre_name' ? |
не помогает,поставил автолоад:
Ext.onReady(function(){ Ext.QuickTips.init(); var genres = new Ext.data.SimpleStore({ reader: new Ext.data.JsonReader({ fields:['id','genre_name'], root:'rows' }), proxy:new Ext.data.HttpProxy({ url:'submit.php' }), autoLoad:true }); var movie_form = new Ext.form.FormPanel({ url:'submit.php', renderTo:document.body, frame:true, title:'Movie Information Form', width:550, items:[{ xtype:'combo', name:'genre', fieldLabel:'Genre', mode:'local', store:genres, displayField:'genre_name', width:120 }] }); }); а вот php код: <?php здесь соединение к базе.... $result = mysql_query('SELECT id,genre_name FROM genres'); while($obj = mysql_fetch_object($result)) { $arr[] = $obj; } echo '{success:true,rows:'.json_encode($arr).'}'; ?> вот ответ с сервера: {success:true,rows:[{"id":"1","genre_name":"2323"},{"id":"2","genre_na me":"sdqer"}]} |
получилось,изменил код на такой:
Ext.onReady(function(){ Ext.QuickTips.init(); var genres = new Ext.data.JsonStore({ url:'submit.php', root:'rows', fields:['id','genre_name'], autoLoad:true }); var movie_form = new Ext.form.FormPanel({ url:'submit.php', renderTo:document.body, frame:true, title:'Movie Information Form', width:550, items:[{ xtype:'combo', name:'genre', fieldLabel:'Genre', mode:'local', store:genres, displayField:'genre_name', width:120 }] }); }); |
Что то с первого раза не заметил.
Глянь на ответ сервера по внимательней Цитата:
Цитата:
ie к такому относится как к ошибке. |
Цитата:
function ShowForm1() { var ComboBox1Store=new Ext.data.Store({ reader: new Ext.data.JsonReader({ fields: ["ID", "VAL"], root: "rows" }), proxy: new Ext.data.HttpProxy({ url: "DataSourceHandler.aspx" }) }); ComboBox1Store.load(); var f = new Ext.form.FormPanel({ region: "center", url: "FormHandler.aspx", frame: true, items: [{ xtype: "combo", name: "ComboBox1", fieldLabel: "ComboBox1", mode: "local", store: ComboBox1Store, valueField: "ID", displayField: "VAL" }] }), w = new Ext.Window({ layout: "border", title: "Form", height: 300, width: 300, items: [f] }); w.show(); } Тока, вот, разве шо заместо за'deprecated'ного Ext.data.SimpleStore - Ext.data.Store BTW, Цитата:
echo '{success:true,rows:'.json_encode($arr).'}'; и первое значение в норме, IMHO, это издержки copy -> paste... |
Часовой пояс GMT +3, время: 08:36. |