Как данные из базы выводить в таблицу на странице
Я на странице с помощью Formit отправляю данные с формы в базу данных. Как теперь возвращать данные из таблицы в базе в таблицу на странице? И чтобы каждый раз при записи в бд, данные добавлялись и в таблице на странице сайта.
<table>
<tr class="title">
<td class="table">Имя</td>
<td class="table">Фамилия</td>
<td class="table">Номер</td>
<td class="table">Email</td>
<td class="table">Количество заказов</td>
<td class="table">Оплачено</td>
</tr>
<tr class="data">
<td class="table"></td>
<td class="table"></td>
<td class="table"></td>
<td class="table"></td>
<td class="table"></td>
<td class="table"></td>
</tr>
</table>
Помогите, пожалуйста! Я только начинаю разбираться в вебе Комментарии: 12
Чтобы вывести данные с сервера на страницу, нужно
1. Отправить запрос на сервер
2. Получить и обработать запрос на сервере
3. Вернуть ответ.
Для п.п. 1 и 3 обычно используют AJAX, а как делать запросы в БД ты могла посмотреть по ссылке в предыдущем своем посте.
1. Отправить запрос на сервер
2. Получить и обработать запрос на сервере
3. Вернуть ответ.
Для п.п. 1 и 3 обычно используют AJAX, а как делать запросы в БД ты могла посмотреть по ссылке в предыдущем своем посте.
Да, с запросами разобралась. У меня проблема в том, как результат присваивать полям таблицы
Дать полям идентификаторы и с помощью js вставлять данные.
Спасибо, попробую
Можете создать свой хук, и уже в нем обрабатывать данные, записывать в таблицы или что-то вам нужно.
hooks => 'tables'
//Создание сниппета tables
$_REQUEST['message']
мне кажется вам нужно более детально сформулировать вопрос.
В какую именно таблицу пишете данные?
Если в свою, то сгенерировали для нее модель? (я просто вижу на сайте ваш другой вопрос и там вы работаете с таблицами через чистый sql синтаксис, минуя модели и методы modx)
Вам данные нужно вывести в админке или отобразить посетителю?
Вы хотите чтобы человек отправил форму и сразу без перезагрузки на этой же странице отобразились данные или имеете ввиду что при следующем обращении к этой странице тут должны отобразиться новые данные?
Во всех этих случаях, ответ на ваш вопрос будет разный.
В какую именно таблицу пишете данные?
Если в свою, то сгенерировали для нее модель? (я просто вижу на сайте ваш другой вопрос и там вы работаете с таблицами через чистый sql синтаксис, минуя модели и методы modx)
Вам данные нужно вывести в админке или отобразить посетителю?
Вы хотите чтобы человек отправил форму и сразу без перезагрузки на этой же странице отобразились данные или имеете ввиду что при следующем обращении к этой странице тут должны отобразиться новые данные?
Во всех этих случаях, ответ на ваш вопрос будет разный.
Добрый вечер. Да, с методами modx у меня туговато…
Таблица у меня своя, данные должны отображаться сразу посетителю без перезагрузки.
Сейчас вывожу таким топорным методом. Сделала снипет, и вывожу его в шаблоне.
Таблица у меня своя, данные должны отображаться сразу посетителю без перезагрузки.
Сейчас вывожу таким топорным методом. Сделала снипет, и вывожу его в шаблоне.
$sql = "SELECT * FROM `clients`";
$statement = $modx->query($sql);
$users = $statement->fetchAll(PDO::FETCH_ASSOC);
foreach ($users as $user) {
print "<tr class='data'>";
print "<td class='table'>". $user['name'] ."</td>";
print "<td class='table'>". $user['surname'] ."</td>";
print "<td class='table'>". $user['phone'] ."</td>";
print "<td class='table'>". $user['email'] ."</td>";
print "<td class='table'>". $user['recorders'] ."</td>";
print "<td class='table'>". $user['paid'] ."</td>";
print "</tr>";
}
Может подскажите, как это можно оптимизировать? Вроде с помощью плейсхолдеров. Как я уже сказала в modx только начинаю работать
Правильнее всего сделать просто
return $users
А в шаблоне (или чанке) использовать шаблонизатор fenom и его метод foreach для вывода результатов. {'!hookbackclient' | snippet}
{foreach $users as $user}
<tr class="title">
<td class="table">{$user['name']}</td>
<td class="table">{$user['surname']}</td>
<td class="table">{$user['phone']}</td>
<td class="table">{$user['email']}</td>
<td class="table">{$user['recorders']}</td>
<td class="table">{$user['paid']}</td>
</tr>
{/foreach}
Выводится только Array. Или я не так вывожу?
Близко к правде но есть нюансы. В вызове сниппета нужно создать переменную и с ней работать.
{var $clients = '!hookbackclient' | snippet}
{foreach $clients as $user}
<tr class="title">
<td class="table">{$user['name']}</td>
<td class="table">{$user['surname']}</td>
<td class="table">{$user['phone']}</td>
<td class="table">{$user['email']}</td>
<td class="table">{$user['recorders']}</td>
<td class="table">{$user['paid']}</td>
</tr>
{/foreach}
А еще с данными массива можно работать через точку. Так чуть быстрее писать<td class="table">{$user.paid}</td>
Спасибо большое!!! Получилось!
Доброй ночи. Не подскажите, можно ли как нибудь со страницы редактировать и удалять записи? Как в сниппете получить id, чтобы отправить запрос в бд?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.