Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   правильно ли понимаю CRUD Ext.js (https://javascript.ru/forum/extjs/49269-pravilno-li-ponimayu-crud-ext-js.html)

ruvi 05.08.2014 14:59

правильно ли понимаю CRUD Ext.js
 
Здравствуйте!
Правильно ли я понимаю , что такое CRUD ?

TableModel.js

Ext.define("STORE.model.TableModel", {
   extend: "Ext.data.Model",
   fields: [
       {
           name: "name",
           type: "string"
       },
       {
           name: "surname",
           type: "string"
       },
       {
           name: "email",
           type: "string"
       }
   ]
});


TableStore.js

Ext.define("STORE.store.TableStore", {
    extend: "Ext.data.Store",
    model: "STORE.model.TableModel",
    storeId: "TableStore",
    autoSync: true,
    autoLoad: true,
    proxy: {

        type: "ajax",
        api: {
            read: "data/read.php",      // *
            create: 'data/create.php',  // *
            update: 'data/update.php',  // *
            destroy: "data/remove.php"  // *
        }
    }
});


Эти url отмеченые "// *" ,что они делают ?

При добавлении модели в "STORE.store.TableStore"
(Ext.getStore("STORE.store.TableStore").add(newMod el)),
она добавится в хранилище, а затем обратится к файлу 'data/create.php' и передаст туда новые данные ?


При удалении модели из "STORE.store.TableStore"
(Ext.getStore("STORE.store.TableStore").remove(old Model),
она удалится из хранилища, а затем обратится к файлу 'data/remove.php' и передаст туда удаляемую модель ?

siber-biber 05.08.2014 20:54

в целом да так и работает.
только вы путаете класс с экземпляром в этом коде:
Ext.getStore("STORE.store.TableStore").add({ name : 'foo' })
вот так с экземпляром например (а если хочется юзать Ext.getStore посмотрите описание этого метода ..можно для стора указать storeId и по нему получать):
var store = new STORE.store.TableStore({
    // put row here to have smth to remove
    data : [{ id : 1, name : 'bar' }]
});

store.remove(store.getById(1));
store.add({ name : 'foo' })

ruvi 06.08.2014 11:25

Спасибо за ответ
 
Большое спасибо за ответ.

Оказывается отправляя данные в эти файлы:
create.php, update.php, remove.php
эти данные нужно сначала перекодировать.

так выглядит мой файл create.php :

<?php
    require_once('dbconnect.php');

	$info = $_POST['user'];

	$data = json_decode(stripslashes($info));  // вот тут перекодировал полученые данные

	$name = $data->name;
	$email = $data->email;
	$surname = $data->surname;


	$query = "INSERT INTO store(name, email, surname) VALUES('$name', '$email', '$surname')";



	$result = mysqli_query($db, $query) or die("fail to add");

	echo json_encode(array(
		"success" => mysql_errno() == 0,
		"user" => array(
			"id" => mysql_insert_id(),
			"name" => $name,
			"email" => $email,
			"surname" => $surname
		)
	));


	mysqli_close($db);
?>


Часовой пояс GMT +3, время: 10:07.