Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 19.04.2017
Сообщений: 7
MySQL

Ошибка при попытке добавления данных в БД через AJAX

14.12.2019, 10:43. Показов 1104. Ответов 4

Студворк — интернет-сервис помощи студентам
Хочу добавить функцию добавления объявления в Избранное.
HTML5
1
2
3
4
5
6
7
8
9
10
<div class='adv' id='adv".$fetch_res_q['id']."'><a href='adv.php'>
            <img  src='files/".$fetch_res_q['files']."'>
            <p>".$fetch_res_q['label']."</p>
            <p>".$fetch_res_q['reg_date']."</p>
            <p>".$fetch_res_q['price']."</p>
            </a>
            <div class='bookmarks'>
              <img src='files/star.png'>
            </div>
           </div>"
страница формируется из таких вот блоков беря данные из базы.
Прочитав пару статей и главу из книги про AJAX захотел, чтобы при нажатии на блок Bookmarks, определялся ID родительского класса и этот id передавался на сервер, где от ID оставались только цифры и на основе этих цифр производилась UPDATE команда в MySQL.
Проблема в том, что AJAX для меня нечто непривычное. Я испробовал стандартный синтаксис.
JavaScript
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
unction AJAX(attr)
{
 var request = new XMLHttpRequest()
 nocache = "&nocache=" + Math.random()*100000
 out = ""
 request.open("GET", "AJAX/index.php?attr=" + attr + nocache, true)
 request.onreadystatechange = function()
 {
   if (this.readyState == 4)
   {
     if (this.status == 200)
     {
       if (this.responseText != null)
       {
         alert("asdfsfa")
       }
       else alert("Communication error: No data received")
     }
     else alert( "Communication error: " + this.statusText)
   }
 }
request.send(null)
}
 
 
$('.bookmarks').click(function()
  {
    attr = $(this).parent().attr('id')
    AJAX(attr);
  });
Потом пробовал jQuery
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$('.bookmarks').click(function()
  {
    this_id = $(this).parent().attr('id')
    $.ajax({
            url: 'AJAX/index.php',
            type: 'post',
            cache: false,
            data: "attr="+this_id,
        }).done(function(data){
            //смотрим какой ответ отправляется в случае успеха
            console.log(data);
        }).always(function(){
            $(this).css('background','yellow')// после того как аякс выполнился
        }).fail(function(){
            // пишем ошибку в консоль если что-то пошло не так
            console.log('There was an error');
      })
    })
И в том, и в другом случае выходила ошибка 500 (Internal Server Error)
Код на стороне PHP
PHP
1
2
3
4
5
6
7
8
9
if(!empty($_GET['attr'])
{
  preg_match('/\d{4}/',$_GET['attr'],$new_attr);
  $ajax_q="UPDATE bookmarks SET `advs_id` = CONCAT(`advs_id`,'$new_attr[0]') WHERE `user_id` = \'$_COOKIE['user_id']\'";
  $conn = mysqli_connect($host,$db_login,$db_pass,$db);
  if(!$conn)exit('Ошибка подключения: '.mysqli_error());
  $res_ajax_q=mysqli_query($conn,$ajax_q);
  (!$res_ajax_q)?exit("Ошибка добавления в избранное");:echo "valid";
}
Я глупый человек, который хочет влиться в web. Так что попрошу мягкой критики и помощи.
Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2019, 10:43
Ответы с готовыми решениями:

Ошибка при попытке добавления записи в базу данных (MySQL)
Qt 4.8.5, MySQL Community Server (mysql-5.5.23-win32.msi). Собрал драйвер под 10 студию (gmake, nmake). Данные с базы получаю, но добавить...

DataGridView, "ошибка диапазона" при попытке добавления данных
Работаю в Windows Forms. Создаю datagridview, программно описываю его, пытаюсь добавить в него данные - а он мне &quot;ошибка...

При попытке добавления хранимой процедуры появляется ошибка
Кто-нибудь может объяснить, почему когда пытаюсь добавить на форму хранимую процедуру(в Microsoft Visual Studio 2010) появляется сообщение...

4
Невнимательный
 Аватар для ft4l
3114 / 1293 / 359
Регистрация: 08.02.2013
Сообщений: 7,571
Записей в блоге: 2
14.12.2019, 16:39
Цитата Сообщение от TimaKasen Посмотреть сообщение
(!$res_ajax_q)?exit("Ошибка добавления в избранное");:echo "valid";
лишняя ; после exit()
0
0 / 0 / 0
Регистрация: 19.04.2017
Сообщений: 7
14.12.2019, 16:46  [ТС]
К сожалению это не помогло.
0
Невнимательный
 Аватар для ft4l
3114 / 1293 / 359
Регистрация: 08.02.2013
Сообщений: 7,571
Записей в блоге: 2
14.12.2019, 17:16
Цитата Сообщение от TimaKasen Посмотреть сообщение
ошибка 500
Это, вероятнее всего, ошибка синтаксиса в php-коде....
Других визуально не замечаю. Смотрите в error_log сервера

Добавлено через 6 минут
Цитата Сообщение от TimaKasen Посмотреть сообщение
"UPDATE bookmarks SET `advs_id` = CONCAT(`advs_id`,'$new_attr[0]')
так же должно быть '{$new_attr[0]}'

Добавлено через 1 минуту
$_COOKIE['user_id'] так же в {}
и есть риск что переменные не определены но это не ошибки синтаксиса
0
0 / 0 / 0
Регистрация: 19.04.2017
Сообщений: 7
15.12.2019, 16:23  [ТС]
Как оказалось я не могу в экранирование. Стоило забить $_COOKIE['user_id'] и $_GET['attr'] в отдельные переменные и уже эти переменные подставить в запросы, как все успешно заработало. И да, AJAX отрабатывал как следует. Ошибка была в php коде, на что и указывала 500 ошибка. Оказывается, если отоспаться, то голова варит гораздо лучше)
Спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2019, 16:23
Помогаю со студенческими работами здесь

Обноление select после добавления данных через ajax
С сервера пришли данные в формате: &lt;option selected&gt;--&lt;/option&gt; &lt;option selected&gt;info&lt;/option&gt; ... Я их в добавляю в выпадающий...

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

Массив $_FILES пустой при попытке загрузить файл через AJAX
Здравствуйте понимаю что вопрос с бородой но все же есть форма для загрузки картинок &lt;form id=&quot;add_news&quot;...

PHP MYSQL Ошибка добавления данных через форму
Помогите пожалуйста! Задание стандартное - передать данные с формы и записать их в базу. Вроде все записал, 100 раз перепроверил - все...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru