У меня есть небольшая проблема с пониманием записи данных в базу данных MySQL. Теперь у меня есть таблица в моей БД, отображаемая в Grid. Я прикрепил редактор, но я не знаю, как правильно его использовать (отправка редактируемых данных в 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"}'; } ?>