MySQL データベースへのデータの記録の理解に少し問題があります。これで、DB にいくつかのテーブルがグリッドに表示されました。エディターをアタッチしましたが、それを正しく使用する方法がわかりません (編集可能なデータを php スクリプトに送信します)。助けを求めてもいいですか?ありがとう。
view.js
Ext.onReady(function() {
var cols = [
{ dataIndex: 'id', header: 'id', hidden: true },
{ dataIndex: 'title', header: 'Title', width: 200, editor: 'textfield'},
{ dataIndex: 'author', header: 'Author', width: 200, editor: 'textfield' },
{ dataIndex: 'isbn', header: 'ISBN', width: 100, editor: 'numberfield' },
],
fields = [];
for(var i=0; i<cols.length; i++) {
fields.push(cols[i].dataIndex);
}
Ext.define('Book', {
extend: 'Ext.data.Model',
fields: fields
});
var store = Ext.create('Ext.data.JsonStore', {
model: 'Book',
proxy: {
type: 'ajax',
url: 'view.php',
reader: {
type: 'json'
}
}
});
Ext.create('Ext.grid.Panel', {
columns: cols,
width: 520,
style: 'margin-top: 20%; margin-left: 35%',
plugins: [
Ext.create('Ext.grid.plugin.RowEditing', {
clicksToEdit: 2
})
],
renderTo: Ext.getBody(),
store: store
});
store.load();
});
view.php
<?php
require_once 'db.php';
$result = mysql_query('SELECT * FROM books');
while ($row = mysql_fetch_assoc($result)) {
for ($i=0; $i < mysql_num_fields($result); $i++) {
$meta = mysql_fetch_field($result, $i);
}
$rows[] = $row;
}
print (json_encode($rows));
?>
edit.js
Ext.onReady(function(){
Ext.QuickTips.init();
var simpleForm = new Ext.FormPanel ({
labelWidth: 75,
url:'edit.php',
frame:true,
title: 'Add book',
bodyStyle:'padding:5px 5px 0',
width: 350,
defaults: {width: 230},
defaultType: 'textfield',
items: [{
fieldLabel: 'Title',
name: 'title',
allowBlank:false
},{
fieldLabel: 'Author',
name: 'author'
},{
fieldLabel: 'ISBN',
name: 'isbn'
}],
buttons: [{
text: 'Save',
handler: function () {
simpleForm.getForm().submit({
waitMsg: 'Saving...',
success: function () {
Ext.MessageBox.alert ('Message','Data has been saved');
simpleForm.getForm().reset();
},
failure: function () {
Ext.MessageBox.alert ('Message','Saving data failed');
}
});
}
},{
text: 'Cancel',
handler: function () {
simpleForm.getForm().reset();
}
}]
});
simpleForm.render ('simple-form');
});
edit.php - ????????
<?php
require_once 'db.php';
$q=mysql_query ("INSERT INTO books VALUES (null, '".$_POST['title']."','".$_POST['author']."','".$_POST['isbn']."')
") or die ('{"success":"false"}');
// json output to notify the insert is success or not
if ($q) {
echo '{"success":"true"}';
}
else {
echo '{"success":"false"}';
}
?>