0

PHPファイルから返されたカウントに基づいて、パネル内に追加パネルを作成しようとしています。ただし、返された JSON データの使用方法につまずきます。また、firebug を使用して調査すると、Ajax 呼び出しが開始されません。私のコードは以下の通りです:

App.js

  var ds = Ext.create('Ext.data.Store',({
            proxy: {
                type:'ajax',
                  url:'data.php',
                  reader: {
                type : 'json',    
                id: 'Completion_ID',  
                root: "myInventory",
                fields:
                        [{name: 'PMNumber', type: 'int', mapping: 'PMNumber'},
                        ]
                    }
           }

           })
        );

Ext.onReady(function() 
{

ds.load();

Ext.create('Ext.panel.Panel', {
    renderTo: document.getElementById('aa'),
    title: 'Marks Entry',
    height: 500,
    width: 880,
    bodyStyle:'padding:15px 15px 15px 15px',
    layout: {
            type: 'table',
            //3 by 3 Grid
            columns: parseInt([{ dataIndex: 'PMNumber'}])
        },
     items: [{ 
             // Blank Panels so html is ''
            xtype:'panel',
            html: '2003010001  ' 
        },{
            xtype:'panel',
            html: '2003010002   '

        },{
            xtype:'panel',
            html: '2003010003   ' 
        },{
            xtype:'panel',
            html: '2003010004' 
        },
        {
            xtype:'panel',
            html: '2003010005' 
        },
        {
            xtype:'panel',
            html: '2003010006' 
        },
        {
            xtype:'panel',
            html: '2003010007' 
        },
        {
            xtype:'panel',
            html: '2003010008' 
        },
        {
            xtype:'panel',
            html: '2003010009'
        },
        ],    
});
});

data.php

<?php
//connection String
$con = mysql_connect($myhost, $myuser, $mypass) or die('Could not connect: ' . mysql_error());
//Select The database
$bool = mysql_select_db($myDB, $con);
if ($bool === False){
    print "can't find $database";
}
// Gather all pending requests
$query = "SELECT
count(*) AS  PMNumber
FROM marks " ;
$result = mysql_query($query, $con); 
if (mysql_num_rows($result) > 0){
while($obj = mysql_fetch_object($result))
    {
        $arr[] = $obj;
    }
// Now create the json array to be sent to our datastore
$myData = array('myInventory' => $arr);
echo json_encode($myData);
return; 
exit();
}
else { // If no requests found, we return nothing
$myData = array('myInventory' => '');
echo json_encode($myData);
return; 
exit();
}
?>

個別に呼び出されたときに php ファイルによって返される JSON データ:

{"myInventory":[{"PMNumber":"3"}]}

html ファイル:

<html>
<head>
    <title>Hello Ext</title>

    <link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css">
    <script type="text/javascript" src="../extjs/ext-debug.js"></script>
    <script type="text/javascript" src="js/app.js"></script>
</head>
<body style="padding: 50px 20px 0 20px;">
    <div id="aa" style="wdith:900px;height:500px"></div>
</body>
</html>

私がどこに行方不明なのか誰にもわかりませんか?

ありがとう

4

1 に答える 1