gpt4 book ai didi

search - 网格存储配置抛出 "Uncaught TypeError: Cannot read property ' 缓冲'未定义"

转载 作者:行者123 更新时间:2023-12-05 08:59:33 26 4
gpt4 key购买 nike

我有表格和网格。用户必须在表单字段中输入数据,然后在网格中显示相关记录。

我想实现一个搜索表单,例如:用户将输入学生的姓名和性别,然后将得到所有具有相同姓名和性别的学生的网格。

因此,我使用 Ajax 将表单字段值发送到 PHP,然后创建一个将在网格存储中使用的 json_encode

我真的不确定我的想法是否好。但我还没有找到另一种方法。

问题是我的商店中有一个错误,但我不知道是什么。我收到此错误:未捕获的类型错误:无法读取未定义的“缓冲”属性

我的看法:

{
xtype: 'panel',
layout: "fit",
id: 'searchResult',
flex: 7,
title: '<div style="text-align:center;"/>SearchResultGrid</div>',
items: [{
xtype: 'gridpanel',
store: 'advSearchStore',
id: 'AdvSearch-grid',
columns: [{
xtype: 'gridcolumn',
dataIndex: 'name',
align: 'right',
text: 'name'
}, {
xtype: 'gridcolumn',
dataIndex: 'gender',
align: 'right',
text: 'gender'
}
],
viewConfig: {
id: 'Arr',
emptyText: 'noResult'
},
requires: ['MyApp.PrintSave_toolbar'],
dockedItems: [{
xtype: 'PrintSave_tb',
dock: 'bottom',
}]
}]
}

我的 Controller :

.
.
.
xmlhttp.open("GET","AdvSearch.php?search_name="+search_name,true);
xmlhttp.send(null);

我的 PHP 脚本:

if (!$con) {
throw new Exception("Error in connection to DB");
}

$query ="SELECT name, gender FROM students WHERE name ILIKE '%$search_name%' ";
$result = pg_query($query);

while ($row = pg_fetch_array($result)) {
$Arr[] = array('name' => $row[0], 'gender' => $row[1]);
}

$searchResult_list = array();
$searchResult_list['success'] = true;
$searchResult_list['Arr'] = $Arr;

$searchResult_list['totalCount'] = count( $searchResult_list['Arr'] );

echo json_encode($searchResult_list);

if (!$result)
die("Error in query: " . pg_last_error());

pg_close($con);

我的商店,模型:

Ext.define('AdvSearchPost', {
extend: 'Ext.data.Model',
proxy: {
type: 'ajax',
url: 'AdvSearch.php',
reader: {
type: 'json',
root: 'Arr',
totalProperty: 'totalCount'
}
},
fields: [{
name: 'name'
}, {
name: 'type_and_cargo'
}
]
});
advSearchStore = Ext.create('Ext.data.Store', {
pageSize: 10,
model: 'AdvSearchPost'
});

最佳答案

嗯,这只是您的店名拼写错误。

错误 Uncaught TypeError: Cannot read property 'buffered' of undefined 仅表示无法绑定(bind)存储。这可能有点误导。

试试网格

store: advSearchPost

store: Ext.StoreMgr.lookup('AdvSearchPost') // if in any form a controller takes care about your store 

它会起作用。

编辑

我猜你没有任何 Controller 所以我建议你像这样创建你的商店

Ext.create('Ext.data.Store', {
pageSize: 10,
model: 'AdvSearchPost',
storeId: 'AdvSearchPost'
});

这将使您能够通过 StoreManager 从任何地方接收商店(在创建之后)。这也将使最后一条语句在没有任何 Controller 的情况下工作。

关于search - 网格存储配置抛出 "Uncaught TypeError: Cannot read property ' 缓冲'未定义",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13581427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com