Здравствуйте, пытаюсь создать редактируемый грид. Не могу разобраться с записью данных в БД. Вот что имеем:
Экст-скрипт
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
?>
Очень прошу помощи - сроки поджимают(