11.01.2011, 20:17
|
Интересующийся
|
|
Регистрация: 11.01.2011
Сообщений: 27
|
|
проблема с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
}]
});
});
|
|
12.01.2011, 13:17
|
Ламер
|
|
Регистрация: 19.02.2010
Сообщений: 295
|
|
что с сервера приходит ?
|
|
12.01.2011, 18:17
|
Интересующийся
|
|
Регистрация: 11.01.2011
Сообщений: 27
|
|
{rows:[{"id":"1","genre_name":"2323"},{"id":"2","genre_na me":"sdqer"}]}
|
|
12.01.2011, 18:19
|
|
NodeJS developer - ушел
|
|
Регистрация: 06.01.2010
Сообщений: 1,022
|
|
Надо бы вот так
Цитата:
|
{success:true,rows:[{"id":"1","genre_name":"2323"},{"id":"2","genre _na me":"sdqer"}]}
|
|
|
13.01.2011, 13:41
|
Ламер
|
|
Регистрация: 19.02.2010
Сообщений: 295
|
|
displayField:'genre'
мб
displayField:'genre_name' ?
|
|
13.01.2011, 14:40
|
Интересующийся
|
|
Регистрация: 11.01.2011
Сообщений: 27
|
|
не помогает,поставил автолоад:
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"}]}
|
|
13.01.2011, 15:23
|
Интересующийся
|
|
Регистрация: 11.01.2011
Сообщений: 27
|
|
получилось,изменил код на такой:
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
}]
});
});
|
|
13.01.2011, 17:13
|
|
NodeJS developer - ушел
|
|
Регистрация: 06.01.2010
Сообщений: 1,022
|
|
Что то с первого раза не заметил.
Глянь на ответ сервера по внимательней
Цитата:
|
{success:true,rows:[{"id":"1","genre_name":"2323"},{"id":"2","genre _na me":"sdqer"}]}
|
Пробел у второго значения в Другие браузеры может такое и нормально воспринимают, а вот
ie к такому относится как к ошибке.
|
|
14.01.2011, 10:25
|
|
Профессор
|
|
Регистрация: 19.12.2009
Сообщений: 164
|
|
Сообщение от avaVusal
|
получилось,изменил код на такой
|
Да у меня и первоначальный вариант отработал с пол-пинка:
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,
Сообщение от mycoding
|
Пробел у второго значения
|
Поскольку все это рожается посредством
echo '{success:true,rows:'.json_encode($arr).'}';
и первое значение в норме, IMHO, это издержки copy -> paste...
__________________
"Helo, word!" - 17 errors 56 warnings
Последний раз редактировалось Ex_Soft, 14.01.2011 в 10:30.
|
|
|
|