Редактируемый грид (MySQL)
Здравствуйте, пытаюсь создать редактируемый грид. Не могу разобраться с записью данных в БД. Вот что имеем:
Экст-скрипт Ext.onReady(function() { var cols = [ { dataIndex: 'id', header: 'id', hidden: true }, { dataIndex: 'title', header: 'Title', editor: 'textfield' }, { dataIndex: 'author', header: 'Author', editor: 'textfield' }, { dataIndex: 'isbn', header: 'ISBN', 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: 'main.php', reader: { type: 'json' } } }); Ext.create('Ext.grid.Panel', { columns: cols, plugins: [ Ext.create('Ext.grid.plugin.RowEditing', { clicksToEdit: 2 }) ], renderTo: Ext.getBody(), store: store }); store.load(); }); function edit(oGrid_event){ Ext.Ajax.request({ waitMsg: 'Please wait...', url: 'edit.php', params: { task: "UPDATE", title: oGrid_event.record.data.title, author: oGrid_event.record.data.author, isbn: oGrid_event.record.data.isbn }, success: function(response){ var result=eval(response.responseText); switch(result){ case 1: Book.commitChanges(); Book.reload(); break; default: Ext.MessageBox.alert('error'); break; } }, failure: function(response){ var result=response.responseText; Ext.MessageBox.alert('error','could not connect to the database. retry later'); } }); } Пхп, вывод данных для грида <?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)); ?> пхп, скрипт редактирования записей (может быть полной ахинеей, потому как не очень еще въезжаю, по каким принципам его организовать) <?php require_once 'db.php'; $title = addslashes($_POST['title']); $author = addslashes($_POST['author']); $isbn = $_POST['isbn']; // First, find the $IDparty $query = "SELECT title FROM books WHERE title='".$title."'"; $result = mysql_query($query); if(mysql_num_rows($result)>0){ $arr = mysql_fetch_array($result); $IDparty = $arr['title']; } else { echo '0'; // failure } // Now update the president $query = "UPDATE books SET title = '$title', author = '$author', isbn = '$isbn' WHERE title=$title"; $result = mysql_query($query); echo '1'; // success ?> Очень прошу помощи - сроки поджимают(:cray: |
Часовой пояс GMT +3, время: 06:06. |