首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将具有多个值的JSON字符串张贴到ext js面板

将具有多个值的JSON字符串张贴到ext js面板
EN

Stack Overflow用户
提问于 2013-10-09 14:53:24
回答 1查看 598关注 0票数 0

我正在开发一个应用程序的一个元素。我有一个小的网络应用,专门用于跟踪客户的业务。目前我的能力相当有限。我将便笺连同其他属性一起存储在客户端表中。我决定通过添加便笺表和用注释更新ext js面板来使它变得更好。

如果我在我的便笺查询中只有一个便条,那么一切都能正常工作。

否则,我将收到此错误。

代码语言:javascript
复制
SyntaxError: invalid property id
..._date":"2013-10-08","note_body":"abcd"},{"username":"rcox","bdev_firstname":"Tre...

这是我正在使用的PHP。

代码语言:javascript
复制
case 'note':
$userid = $_REQUEST['clientID'];
$query = $dbh->prepare("SELECT a.username, b.bdev_firstname, b.bdev_lastname, n.note_date, n.note_body FROM admin a, bdevs b, clients c, notes n WHERE  c.clientID=".$userid.";");
$query->execute();
while($cli = $query->fetch()) {
$json = '{"username":"'.$cli['username'].'","bdev_firstname":"'.$cli['bdev_firstname'].'","bdev_lastname":"'.$cli['bdev_lastname'].'","note_date":"'.$cli['note_date'].'","note_body":"'.$cli['note_body'].'"},';   
$note .= $json;
}
$note = trim($note, ',');
echo '{success: true, data:'.$note.'}';   
break;

这是我的ext js函数。

代码语言:javascript
复制
function getNote(){
    var selectedNote = userGrid.getSelectionModel().getSelected();
    Ext.Ajax.request({
        url: 'inc/template.php',
        params: {list: 'note',
                clientID: selectedNote.get('clientID')
                },
        method: 'POST',
        success: function(f,a){
            var jsonData = Ext.util.JSON.decode(f.responseText);

                if(jsonData.success == true)
                {
                    var username = jsonData.data.username;
                    var bdev_firstname = jsonData.data.bdev_firstname;
                    var bdev_lastname = jsonData.data.bdev_lastname;
                    var note_date = jsonData.data.note_date;
                    var note_body = jsonData.data.note_body;
                    RightPanel.update('<b>Admin:</b> ' + username + '<br/><b>Buissiness Dev Rep:</b> ' + bdev_firstname + bdev_lastname + '<br/><b>Note Date:</b> ' + note_date + ' <br/>----------<br/> ' + note_body);
                }
                else
                {
                    RightPanel.update('Access Denied');
                }
        },
        failure: function(f,a){
            Ext.Msg.alert("Error", "Access Denied");
        }
    });
}

下文对此作了答复。有关此主题的更多疑难解答,请访问我在Sencha论坛上的问题。http://www.sencha.com/forum/showthread.php?273478-MOVED-POST-Posting-a-JSON-array-with-multiple-values-to-ext-js-panel&p=1002545#post1002545

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-09 15:14:48

如果您实际上不使用json,那么使用它有什么意义。

代码语言:javascript
复制
case 'note':
$userid = $_REQUEST['clientID'];
$query = $dbh->prepare("SELECT a.username, b.bdev_firstname, b.bdev_lastname, n.note_date, n.note_body FROM admin a, bdevs b, clients c, notes n WHERE  c.clientID = ?");
$query->execute(array($userid));
$response = json_encode(array('success'=> true, data => $query->fetchAll(PDO::FETCH_ASSOC)));
echo $response;   
break;

然后是错误所在的ext.js部分--如果数据是数组,在访问关联字段之前,需要对其进行迭代,对吗?

代码语言:javascript
复制
            if(jsonData.success == true)
            {
                var i, item;
                for(  i = 0; i < jsonData.data.length; i++; ) {
                item = jsonData.data[i];                    
                RightPanel.update('<b>Admin:</b> ' + item.username + '<br/><b>Buissiness Dev Rep:</b> ' + item.bdev_firstname+" "+item.bdev_lastname + '<br/><b>Note Date:</b> ' + item.note_date + ' <br/>----------<br/> ' + item.note_body);
              }
            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19275480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档