21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443

Как вытащить из БД данные без перезагрузки страницы?

17.07.2018, 14:23. Показов 2045. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста помогите мне с моим сайтом.

Объясните мне пожалуйста одно.
У меня есть страница, на нем есть ссылки к примеру Вкусная еда, при нажатии на эту ссылку я хочу открыть php файл с его полными характеристиками из Базы данных, то есть рецепт, цена и т.д.
Но так чтобы страница открывалась без перезагрузки с помощью ajax. Но я не могу вообще понять как вытощить данные из php темболее из бд и передать обратно JS, и как построить такую страницу, к примеру я получаю title и его надо поместить в <title> к примеру я получаю текст его надо поместить в текст на новой страницеПожалуйста объясните мне.

Я получаю доступ к странице .php , но как сделать так чтобы php отправил мне обратно данные из бд и в javascript я смог их поместить в переменные.


пожалуйста помогите мне. если есть возможность через teamwiewer

Вот мой button
HTML5
1
<h4><button onclick="ajax('POST','function/new_stat.php',1)">PHP</button></H4><hr/>
в AJAX переадаю три параметра метод, страница PHP, и третий параметр это id идентификатор для работы с БД.

Вот сам JS
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function ajax(method,adres,param) {
    var xhttp = new XMLHttpRequest();
    var id = 'id='+encodeURIComponent(param);
    xhttp.open(method,adres,true);
    xhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    xhttp.onreadystatechange = function (e) {
        if(xhttp.readyState == 4 && xhttp.status == 200) {
            alert(xhttp.responseText);
        }
    }
    xhttp.send(id);
}
alert работает и выводится строка из Базы данных.
Но мне нужна не одна строка title, а еще и другие строки, как мне все это вместе вытощить и записать в переменные в js
то есть title, text, pruef

вот PHP файл которая принимает этот id
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
<?php
class Stat{
    public $id, $text, $title;
    
    public function __construct($id) {
        $this->id = intval($id);
    }
    
    public function viborka() {
        require 'connect.php';
        $connect = new Connect();
        $query = "SELECT * FROM stat_blog WHERE id = ".$this->id;
        $result = $connect->select($query);
        return $result;
    }
    
    public function textM() {
        $vibor = $this->viborka();
        $this->text = $vibor['text'];
        return $this->text;
    }
    
    public function titleM() {
        $vibor = $this->viborka();
        $this->title = $vibor['title'];
        return $this->title;
    }
}
if(isset($_POST['id'])) {
    $id = (int) $_POST['id'];
    $stat = new Stat($id);
    $title = $stat->titleM();
    echo $title;
}
?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2018, 14:23
Ответы с готовыми решениями:

Как подкачать данные для страницы без ее полной перезагрузки?
Здравствуйте ВСЕ, Кто-нибудь знает техническое решение осуществления подкачки данных для страницы без ее полной перезагрузки? ...

Как подкачать данные для страницы без ее полной перезагрузки?
Здравствуйте ВСЕ, Кто-нибудь знает техническое решение осуществления подкачки данных для страницы без ее полной перезагрузки? ...

Как обновить данные в сессии при отправке от сервера без перезагрузки страницы
Здравствуйте, подскажите пожалуйста как можно обновить данные в сессии и вывести их на странице без перезагрузки страницы? вот скрипт ajax...

51
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
17.07.2018, 14:46
PHP
1
2
$title = '{"title" : "'.$stat->titleM(). '", "text" : "'.$stat->textM().'"}';
    echo $title;
Ну и с pruef сделать функцию и добавить в вывод $title.
1
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
17.07.2018, 14:52
maxoun,

Думаю это не совсем правильная реализация формирования статей . Нужно смотреть в сторону MVC хотя бы.

Добавлено через 2 минуты
Зачем нужен аякс запрос если все равно пользователь практически переходит на другую страницу ? А перерисовывать каждый раз страницу.. Ну не знаю , сомнительное занятие.
1
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
17.07.2018, 14:55  [ТС]
Torovich, подскажите пожалуйста, вот вы сделали json формат, как на стороне клиента я должен его принять, и занести их в переменную?
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
17.07.2018, 14:59
Цитата Сообщение от maxoun Посмотреть сообщение
alert(xhttp.responseText);
Сюда
JavaScript
1
var data = xhttp.responseText;
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
17.07.2018, 15:31
JSON создаётся не так: json_encode

JavaScript
1
JSON.parse()
1
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
17.07.2018, 15:48
Рыжий Лис, а зачем нам json_encode, если у нас ответ уже в json. Если использовать, то сначала создать массив, потом через json_encode на вывод.
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
17.07.2018, 15:53
А если в $stat->titleM() будет содержаться двойная кавычка? Не надо раскидывать грабли на пустом месте.

Да, создаём словарь/массив, заполняем его данными, кодируем в json, отправляем в браузер, декодируем обратно в словарь/объект.
1
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
17.07.2018, 16:01
Рыжий Лис, согласен, тогда так
PHP
1
2
$title = ["title" => $stat->titleM(), "text" => $stat->textM()];
echo json_encode($title);
1
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
17.07.2018, 16:03  [ТС]
Рыжий Лис, а как на стороне клиента применять это?
Если я делаю responseText то туда ставится все подряд.
но мне нужна была что бы к примеру title которая передается через json в js была в переменной title , а текст в переменной text
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
17.07.2018, 16:09
JavaScript
1
2
var title = data.title;
var text = data.text;
1
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
17.07.2018, 16:14  [ТС]
Torovich, Torovich, сейчс попробую

Добавлено через 1 минуту
Torovich, тогда как лучше будет это сделать
Цитата Сообщение от D_Vik Посмотреть сообщение
Зачем нужен аякс запрос если все равно пользователь практически переходит на другую страницу ? А перерисовывать каждый раз страницу..
Может быть оставить ссылку как есть и только когда открывается новая страница тогда и делать это все?
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
17.07.2018, 16:18
Здесь на твоё усмотрение. Главное, чтоб глаз радовало.
0
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
17.07.2018, 16:22
maxoun,

Фиг знает как оно лучше ,но я бы предпочел роутинг по средствам php нежели аякс подгрузку. Если у тебя на странице будет не 2 переменные , а 30 ? И не 1 блок а 5 , по мне так лучше все ето сформировать с помощью php.
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
17.07.2018, 16:25  [ТС]
Цитата Сообщение от D_Vik Посмотреть сообщение
по мне так лучше все ето сформировать с помощью php.
но в таком случае оно будет загружаться долго и мучительно не так ли?

Добавлено через 42 секунды
Цитата Сообщение от Torovich Посмотреть сообщение
Здесь на твоё усмотрение. Главное, чтоб глаз радовало.
получается пример который вы мне показали с помощью json, так можно и данные с бд комментарий вытаскивать нет?
0
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
17.07.2018, 16:27
maxoun,

С чего такие выводи вдруг ?
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
17.07.2018, 16:27
Цитата Сообщение от maxoun Посмотреть сообщение
данные с бд комментарий
Можно.
0
21 / 44 / 11
Регистрация: 08.02.2018
Сообщений: 443
17.07.2018, 16:33  [ТС]
Цитата Сообщение от Torovich Посмотреть сообщение
2
var title = data.title;
var text = data.text;

выводит вот что на f12 сеть

Fatal error: Cannot redeclare class Connect in C:\xampp\htdocs\blog\function\connect.ph p on line 2

когда пытаюсь делать data.title выводит undenfined
JavaScript
1
2
const data = xhttp.responseText;
            alert(data.title);
Добавлено через 3 минуты
Цитата Сообщение от D_Vik Посмотреть сообщение
С чего такие выводи вдруг ?
но как без ajax ты попытаешься такое сделать?
0
87 / 48 / 24
Регистрация: 29.11.2016
Сообщений: 243
17.07.2018, 16:36
Цитата Сообщение от maxoun Посмотреть сообщение
Fatal error: Cannot redeclare class Connect in C:\xampp\htdocs\blog\function\connect.ph p on line 2
Это уже ошибка в соединении с БД.
0
 Аватар для D_Vik
368 / 234 / 68
Регистрация: 19.07.2016
Сообщений: 833
17.07.2018, 16:36
maxoun,

Обыкновенно. И загрузка будет не чем не медленее чем с помощью аякса , мне кажется аякс тут лишнее ,я понимаю что это круто и интересно ,но не нужно городить это только потому , что это есть.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2018, 16:36
Помогаю со студенческими работами здесь

AJAX. Как сделать так, чтобы данные обновлялись в таблице без перезагрузки страницы?
Здравствуйте. Есть страница, на которой пользователь может обновить свои Имя и Фамилию. Но при нажатии кнопки &quot;save_name&quot;...

Как получить данные из формы Django средствами jquery и вывести их на экран без перезагрузки страницы?
Есть форма Джанго &lt;div class=&quot;field inline&quot; id='lot'&gt; &lt;label for=&quot;{{ form.lot_cost.id_for_label }}&quot; ...

Как реализовать? На одном компьютере меняешь данные, на другом сразу (без перезагрузки страницы) отображается результат
Не знал как правильнее сформулировать вопрос. Я и в PHP не особо разбираюсь, и понимаю, что такое с одним PHP не реализовать. Мне нужна...

ListView изменять данные без перезагрузки страницы
Здравствуйте! Очередной вопрос появился - можно как то выбирать данные из БД и обновлять их в ListVew без перезагрузки страницы? Читал что...

Отправить данные формы без перезагрузки страницы
Здравствуйте! На странице есть форма. Никак не получается отправить данные этой формы без перезагрузки страниц. Подскажите, как быть? А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
Мысли в слух
kumehtar 29.10.2025
Обнаружил, что мысли лучше писать короткими фразами. Таким образом внимание читателя успевает охватить всю фразу сразу, за один раз, не соскакивая и не прерываясь. А если писать это длинным текстом,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru