Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / ExtJS + PHP сохранение измененных данных в БД / 3 сообщений из 3, страница 1 из 1
05.09.2013, 18:51
    #38388370
RomaT24
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS + PHP сохранение измененных данных в БД
Столкнулся с распространенной для новичков проблемой - есть Grid с возможностью редактирования загруженных туда данных из БД и сама проблема - при изменении данных и последующем обновлении страницы ничего не обновляется, база остается неизменной. В FireBug проверил, что после изменения данных POST отправляется (в виде JSON-строки, в которой было изменение). Но как правильно эти данные принять, и сделать Update, не могу пока понять(
Код HTML:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<html>
<head>
    <title>ExtJS Example</title>
    
    <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css">
    <script type="text/javascript" src="ext-all-debug.js"></script>
	 <script>
      Ext.Loader.setConfig({
        enabled: true
      });
    </script>
    <script type="text/javascript" src="f_app1.js"></script>
</head>
<body></body>
</html>



Код js:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
Ext.application({
    name: 'Hello, Ext!',
    launch: function() {

Ext.define('Cust', {
    extend: 'Ext.data.Model',
	idProperty: 'id',
    fields: [
        {name: 'id', type: 'int'},
        {name: 'fname', type: 'string'},
        {name: 'sname', type: 'string'}
    ]
});

			
var CellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
        clicksToEdit: 1
       // autoCancel: false
    });
	
var store = new Ext.data.JsonStore({
  autoLoad: true,
  autoSync: true,
  model: 'Cust',
  proxy: {
        type: 'ajax',
		api:{
             read:'f_DB.php?act=read',
             update:'f_DB.php?act=update'
            },
            reader: {
               type: "json" //json
            },
            writer: {
                type: "json" //json
            },

        }

});

Ext.create('Ext.grid.Panel', {
        title: 'Пользователи',
        height: 250,
        width: 500,
        store: store,
		plugins: CellEditing,
        columns: [{
           header:'ID',         
           dataIndex:'id',
           editor: {
           allowBlank: false
           }		   
      },{
            header:'Имя',        
            dataIndex:'fname',
			editor: {
            allowBlank: false,
           }
        }, {
            header:'Фамилия',         
            dataIndex:'sname',
			editor: {
            allowBlank: false
           }
        }],
		frame: true,
        renderTo: Ext.getBody()
    });				

}
});	



Код PHP:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
<?php
$user="Roman";
$password="123";
$db="Roman";
$host="localhost";
$link= mysql_connect($host, $user, $password) or die("MySQL сервер недоступен!".mysql_error());
mysql_select_db($db,$link) or die("Нет соединения с БД".mysql_error());

$act = $_REQUEST['act'];

$objects_table = 'customer';
//$id = 'id';  // поле ID


$data = json_decode(file_get_contents('php://input'), true);
$devid   = $data['id'];
$fname   = $data['fname'];
$sname   = $data['sname'];

switch ($act) {
    case 'read':
       $query = "select * from $objects_table";
       $result = mysql_query($query, $link);
       while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
         {
           $data_c[] = array(
           'id' => $row['id'],
           'fname' => $row['fname'],
           'sname' => $row['sname'],
           );
         }
      $d = json_encode($data_c);
      echo $d;
	  break;
	case 'update':
        $sql = "begin
                    update $objects_table 
                     set 
                         fname = $fname,						 
                     where id  = $devid;
                    commit;
                end;";
        $result_upd = mysql_query($sql, $link);		
        break;
	default:
        echo "default";
}; 

mysql_free_result($result);
mysql_close($link);
?>



Сначала адресовал этот вопрос в тему JS, но посоветовали перенести сюда, т.к. проблема скорее всего связана именно с PHP :) Буду благодарен за помощь.
...
Рейтинг: 0 / 0
05.09.2013, 22:04
    #38388495
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS + PHP сохранение измененных данных в БД
оффя не советовал перенести
я советовал попросить модераторов, чтобы они перенесли
...
Рейтинг: 0 / 0
05.09.2013, 22:31
    #38388505
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS + PHP сохранение измененных данных в БД
Модератор:
RomaT24 , а вот кросспостить не надо. Прочтите пожалуйста правила форума. Топик закрыт.

PS: Вообще то, у Вас в коде проблемы более с SQL, нежели с PHP.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / ExtJS + PHP сохранение измененных данных в БД / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]