Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

вывод данных из базы данных по нажатию кнопки

МИСТЕР МИСТЕР Ученик (205), закрыт 8 лет назад
Дополнен 8 лет назад
есть страница в нем 10 кнопок в левой стороне, а в правой стороне div блок, по нажатию на кнопку выводить элементы из базы данных в этот div блок, не перегружая страничку (динамически).

код отправляет на страничку с php в нем обрабатывается и возвращается обратно

$('#loadpage').click(function(){
$.post('./load.php', {}, function (data) {
$('#content').html(data);

});
});

php страничка где обрабатывается сам код.

$pdo = new PDO('mysql:host=localhost;dbname=test;charcet=utf8', 'root', '');
$stmt = $pdo->prepare('SELECT * FROM ar WHERE id=1');
$stmt->execute();

$data = $stmt->fetchAll()[0];

$holder = $data['title'];
$holder .= $data['text'];
$style = $data['style'];
echo $holder;
echo $style;

вопрос такой. как сделать по нажатию чтоб выбока из базы данных шла по id. например нажал на одну кнопку загрузилась строка с id 1. на вторую кнопку отобразить строку из бд с id 2. нужна момощь, мущаюсь уже второй день.
Дополнен 8 лет назад
<?php

$pdo = new PDO('mysql:host=localhost;dbname=test;charcet=utf8', 'root', '');
$id = $_GET['id']
$stmt = $pdo->prepare('SELECT * FROM ar WHERE id= '$id');
$stmt->execute();

$data = $stmt->fetchAll()[0];

$holder = $data['title'];
$holder .= $data['text'];
$style = $data['style'];
echo $holder;
echo $style;

ошибка в 6-ой строке.

исправляю ошибку на этот
$stmt = $pdo->prepare('SELECT * FROM ar WHERE id= $id');
ошибок нет но и данных с базы тоже нет.
Лучший ответ
Александр Маймин Ученик (242) 8 лет назад
Ребята, где же разум делся???

На каждый блок свой обработчик события? Вы чего?
1) Кнопкам нужны идентификаторы, совпадающие с идентификаторами записей. - да
2) Событие нажатия вешается на контейнер, а не на кнопку, типа
div class="buttons-container"
button id="lesson-1" Урок 1 /button
button id="lesson-1" Урок 2 /button
...
/div
script
$('#buttons-container').on('click', 'button', function() {
...
}
/script

3) Идентификатор можно получить из идентификатора нажатой кнопки, типа var id = $(this).attr('id').replace(/lesson-(\d+)/, '$1');
4) Этот ID и пойдёт в атрибуты post-запроса, кстати, есть метод $.load ещё, кажется для вас его писали...
5) На стороне сервера - PDO - Ура! Многие здесь и этого не знают, но пользоваться не умеем ) Сразу sql-инъекция случилась. Нужно параметрами запроса пользоваться, типа "... WHERE id = :id", а в параметрах, соответственно, array(':id' => $id, ..).

Про смотрение в сторону ajax - вообще гениально, просто разбудили человека внезапно, он и брякнул чего-то...
Остальные ответы
Adam West Мастер (1263) 8 лет назад
Сначала в html переименовать первую кнопку в loadpage1, вторую в loadpage2 ...десятую в loadpage10
Потом в js
$('#loadpage1').click(function(){
id=1;
$.post('./load.php', {id:id}, function (data) {
$('#content').html(data);
});
});
...
$('#loadpage2').click(function(){
id=2;
$.post('./load.php', {id:id}, function (data) {
$('#content').html(data);
});
});
и в php
$id=$_GET['id']
$stmt = $pdo->prepare('SELECT * FROM ar WHERE id='$id'');

Проще сделать поле, в которое вводится ид и одну кнопку вместо 10
Резидент Казахстана Оракул (68939) 8 лет назад
если без перезагрузки страницы то смотрите в сторону ajax
Николай Васильев Ученик (245) 8 лет назад
Я производил получение рут прав через программы Zykuroot и Rootkhp.
Похожие вопросы