Необходимо создать страницу, выводящую список пользователей в виде таблицы
- колонки: id, имя, возраст, город
Реализовать возможность редактирования данных пользователя в данной таблице со следующим функционалом:
- при клике на имя или возраст вместо текста появляется поле ввода с текстом внутри, после чего можно начинать редактировать. При нажатии Enter или увода фокуса из поля ввода, происходит сохранение данных через вызов Ajax. Поле ввода пропадает и снова остается текст.
- при клике на город, вместо текста появляется выпадающий список городов, выбранным значением является город пользователя. можно выбрать любой другой город или первую запись в списке (Город не указан), нажать Enter и значение изменится, процесс редактирования завершится
Дополнительные условия:
- Данные о пользователях хранятся в таблице users, о городах в таблице cities,таблицы связаны между собой по полю city_id
- Реализовать класс User. Передавая к конструктор в качестве параметра id пользователя, мы должны на выходе получить объект пользователя с заполненными данными.
- В классе User должна быть реализована статичная функция GetAllUsers, которая извлекает всех пользователей из таблицы. Страница со списком пользователей формируется на основе этих данных. Функция должна минимизировать количество обращений к базе данных. Не должно быть количество запросов равное количеству пользователей.
- Изменение данных происходит через объект
Я уже в принципе все сделал, кроме обновления записи в БД с помощью AJAX. Не могу разобраться, как найти к какому пользователю принадлежит ячейка чтобы обновить соответствующую запись. Так же хотелось бы узнать замечания по своему коду. Как не стоило делать? Что нужно поменять?
Код главной страницы
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <html>
- <head>
- <title>AJAX</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <script type="text/javascript" src="redact.js"></script>
- <script type="text/javascript">
- </script>
- </script>
- </head>
- <body>
- <CENTER>
- <?PHP
- require_once('users.class.php');
- users::getAllUsers();
- echo '<table border="1">';
- echo '<thead>';
- echo '<tr>';
- echo '<th>Id</th>';
- echo '<th>Фамилия</th>';
- echo '<th>Возраст</th>';
- echo '<th>Город</th>';
- echo '</tr>';
- echo '</thead>';
- echo '<tbody>';
- echo '<tr>';
- echo '<td>' . $data['users_id'] . '</td>';
- echo '<td onclick="script_(this)" width=100 height=30>' . $data['users_name'] . '</td>';
- echo '<td onclick="script_(this)" width=70 height=30>' . $data['users_age'] . '</td>';
- echo '<td onclick="script2_(this)" width=150 height=30>' . $data['city'] . '</td>';
- echo '</tr>';
- }
- echo '</tbody>';
- echo '</table>';
- ?>
- <FORM NAME='FORM1' accept-charset="UTF-8">
- Имя:
- <br>
- <INPUT type = "text" name = "users_name" align="center">
- <br>
- Возраст:
- <br>
- <INPUT type = "text" name = "users_age"><br>
- Город: <br>
- <?PHP
- $i=0;
- FROM cities")
- {
- global $make;
- $make[$i]=$data1[0];
- $i++;
- }
- echo '<SELECT id="mySelect" name="mySelect">';
- for ($k=0;$k<$i;$k++)
- echo '<OPTION VALUE=" ' .$make[$k].'">' .$make[$k].' </option>';
- echo '</SELECT>';
- ?>
- <br>
- </CENTER>
- </FORM>
- </body>
- </html>