ajax — приложение PHP CRUD: динамически поставлять индексы массива

Я делаю CRUD-приложение Employees, используя mysqli.

У меня есть HTML-таблица Employees, отображающая пользователей из таблицы базы данных с именем «users», как показано ниже (файл шаблона — users.php):

Все сотрудники перечислены в этой таблице.

Я хотел щелкнуть ссылку просмотра пользователя справа от первого пользователя (значок глаза), чтобы отобразить его профиль. Какой метод я должен использовать, учитывая, что у меня есть $get_users массив, содержащий все данные пользователей, так что:

<pre><?php print_r ($get_users); ?></pre>

дисплеи

Array
(
[0] => Array
(
[id] => 1
[first_name] => Alex
[last_name] => Smith
[email] => alex.smith@gmail.com
[telefon] => 0743127315
[oras] => London
[adresa] => 5th Shaftesbury Ave.
)

[1] => Array
(
[id] => 5
[first_name] => Doe
[last_name] => John
[email] => jdoe80@yahoo.com
[telefon] => 0743127315
[oras] => London
[adresa] => 5th King's Road
)

)

и конечно <?php print ($get_users[0]['first_name']); ?>

отображает имя первого пользователя — Алекс. Но я не могу просто жестко view_user.php страница для каждого пользователя в базе данных.

Мой файл view_user.php (шаблон) содержит эту таблицу HTML:

<table id="single_user" class="table table-striped table-bordered">
<tbody>
<tr>
<td>First name</td>
<td><?php echo $get_users[0]['first_name']; ?></td>
</tr>
<tr>
<td>Last name</td>
<td><?php echo $get_users[0]['last_name']; ?></td>
</tr>
<tr>
<td>Email</td>
<td><a href="mailto:<?php echo $get_users[0]['email']; ?>"><?php echo $get_users[0]['email']; ?></a></td>
</tr>
<tr>
<td>Phone</td>
<td><?php echo $get_users[0]['telefon']; ?></td>
</tr>
<tr>
<td>City</td>
<td><?php echo $get_users[0]['oras']; ?></td>
</tr>
<tr>
<td>Address</td>
<td><?php echo $get_users[0]['adresa']; ?></td>
</tr>
</tbody>
</table>

я нуждаюсь в этом $get_users индексы массива генерируются динамически: $get_users[index] где индекс принимает значения от 0 до общего числа пользователей минус один.

Так какой же самый быстрый и безопасный способ сделать это? (AJAX?)

0

Решение

Вы можете:

/view_user.php?id=3

где:

$user_id = $_GET['id'];

$sql = "SELECT * FROM `users` WHERE `user_id` = " . (int)$user_id;

РЕДАКТИРОВАТЬ:

Ну, вы должны быть в состоянии использовать $ _GET [‘id’] просто отлично в своей функции.

$sql = "SELECT * FROM `users` WHERE `user_id` = " . (int)$_GET['id'];

Но имейте в виду, что этот подход очень неправильный по многим причинам.

Вы должны начать читать о и использовать такие рамки, как Laravel который предоставляет все необходимые инструменты, необходимые для облегчения вашей жизни и просто для того, чтобы сконцентрироваться на вашей бизнес-логике, а не изобретать велосипед.

1

Другие решения

Зависит от того, что вы хотите, если вы хотите, чтобы он загружался динамически или на другой странице. Если вы хотите на другой странице, вы можете использовать что-то вроде первого ответа:

  • Добавьте ссылку на кнопку просмотра: /user.php?id=# (идентификатор пользователя заполняется автоматически)
  • Создайте функцию в вашем functions.php, чтобы получить только одного пользователя get_user($id) где вы пишете свой SQL и возвращаете все свои данные.
  • Вызовите функцию get_users и установите ее в массив, чтобы иметь всю вашу информацию $user = get_user($_GET["id"]) и используйте его там, где вам нужно.

Если вы хотите ajax, вы загружаете этот контент либо в лайтбокс, либо добавляете div к своему контенту. Я обычно использую jquery-confirm.js загрузить контент в лайтбокс. Вы можете настроить его на динамическое содержание и вернуть свой user.php данные. Вы можете использовать тот же файл, что и в не-Ajax-версии. Для заголовка вам нужен другой файл, если вы хотите, чтобы он был простым.
Краткий пример:

$.dialog({
title: /user-title.php?id=#,
content: /user.php?id=#,
});

Более подробная информация о плагине здесь: https://craftpip.github.io/jquery-confirm/

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector