Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141

Проблема с ajax

18.04.2020, 09:43. Показов 3980. Ответов 95
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема с ajax он срабатывает но только после обновления страницы (он удаляет картинку)



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
36
$query_img = mysqli_query($link,"SELECT * FROM uploads_images WHERE products_id='$id'");
 
If (mysqli_num_rows($query_img) > 0)
{
    
$result_img = mysqli_fetch_array($query_img);
do
{
if  (strlen($result_img["image"]) > 0 && file_exists("../uploads_images/".$result_img["image"]))
{
$img_path = '../uploads_images/'.$result_img["image"];
$max_width = 100; 
$max_height = 110; 
 list($width, $height) = getimagesize($img_path); 
$ratioh = $max_height/$height; 
$ratiow = $max_width/$width; 
$ratio = min($ratioh, $ratiow); 
 
$width = intval($ratio*$width); 
$height = intval($ratio*$height);  
 
}else
{
$img_path = "./images/noimages.png";
$width = 90;
$height = 70;
}
echo ' 
 <li id="del'.$result_img["id"].'" >
 <img src="'.$img_path.'" width="'.$width.'" height="'.$height.'" title="'.$result_img["image"].'" />
 <a class="del-img" img_id="'.$result_img["id"].'" ></a>        
 </li>
  ';  
    
}while ($result_img = mysqli_fetch_array($query_img));
}


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$('.del-img').click(function(){
    var img_id = $(this).attr("img_id");
    var title_img = $("#del"+img_id+" > img").attr("title");
    
  $.ajax({
  type: "POST",
  url: "./actions/delete-gallery.php",
  data: "id="+img_id+"&title="+title_img,
  dataType: "html",
  cache: false,
  success: function(data) { 
  if (data == "delete")
  {
     $("#del"+img_id).fadeOut(300);
  }
                          }
 
});
   
 });

delete-gallery.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
include("../include/db_connect.php"); 
 
$path = $_SERVER['DOCUMENT_ROOT']."/uploads_images/".$_POST["title"];
 
        if (file_exists($path))
        {  
          unlink($path);
          $delete = mysqli_query($link,"DELETE FROM uploads_images WHERE id = '{$_POST["id"]}'"); 
          echo "delete";   
        }
        else
        {
           echo "delete"; 
           $delete = mysqli_query($link,"DELETE FROM uploads_images WHERE id = '{$_POST["id"]}'");  
        }
 
}
?>
Изображения
 
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.04.2020, 09:43
Ответы с готовыми решениями:

AJAX проблема
window.onload = init; var localitati = null; var tempLocalitati = null; var counter = 0; var requestObject = false; ...

Проблема с ajax запросом
Есть два файла js ajax.js и main. js function doAjax(request){ let xhr = new XMLHttpRequest(); if (request.method ===...

Проблема с кодировками в Ajax
вообщем есть такой урезанный код: &lt;DIV id='div'&gt;&lt;/DIV&gt; &lt;SCRIPT language=&quot;JavaScript&quot;&gt; function showtext() { ...

95
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
19.04.2020, 17:35  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от fanatikus Посмотреть сообщение
увидите
удалил не к картинке не к полям AjexFileManager отношения не имел все изменяет сохраняет в базу заносит ошибки ушли осталась ток одна ошибка но картинка все так же удаляется после обновления страницы
Миниатюры
Проблема с  ajax  
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
20.04.2020, 12:01
виноват, немного запраздновался - не смог ответить, немного в нерабочем состоянии был... тут и без меня вам все объяснили. вам просто надо разобраться пошагово.
1) попробуйте посмотреть html код страницы (правая кнопка мыши щелк по странице-> посмотреть код страницы). если можно, напишите, как отображается html код строчками 28-33
2) попробуйте заменить строчки 28-33 вот так:
PHP
1
?><li id="del<?= $result_img["id"] ?>"><img src="<?= $img_path ?>" width="<?= $width ?>" height="<?= $height ?>" title="<?= $result_img["image"] ?>" /><a class="del-img" img_id="<?= $result_img["id"] ?>" ></a></li><?php
3) атрибут img_id не существует и не поддерживается, почему его не заменить, например так
HTML5
1
<a class="del-img" href="#" data-id="<?= $result_img["id"] ?>"/></a>
и в java script 2 строчка
JavaScript
1
var img_id = $(this).attr("data-id");
хотя нет. у вас там никаких признаков htlm5 спецификации нет. используется древний xhtml. тогда примерно вот так
HTML5
1
<a class="del-img" href="#" id="img<?= $result_img["id"] ?>"/>X</a>
и в java script 2 строчка
JavaScript
1
var img_id = $(this).attr("id").substring(3);
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 12:33  [ТС]
Вложение 1135448
Цитата Сообщение от vinikon Посмотреть сообщение
28
если я правильно нашел то вот они
Миниатюры
Проблема с  ajax  
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 12:46  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
заменить
Заменил ничего не происходит если я правильно заменил

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
$query_img = mysqli_query($link,"SELECT * FROM uploads_images WHERE products_id='$id'");
 
If (mysqli_num_rows($query_img) > 0)
{
    
$result_img = mysqli_fetch_array($query_img);
do
{
if  (strlen($result_img["image"]) > 0 && file_exists("../uploads_images/".$result_img["image"]))
{
$img_path = '../uploads_images/'.$result_img["image"];
$max_width = 100; 
$max_height = 110; 
 list($width, $height) = getimagesize($img_path); 
$ratioh = $max_height/$height; 
$ratiow = $max_width/$width; 
$ratio = min($ratioh, $ratiow); 
 
$width = intval($ratio*$width); 
$height = intval($ratio*$height);  
 
}else
{
$img_path = "./images/noimages.png";
$width = 90;
$height = 70;
}
 
 
?><li id="del<?= $result_img["id"] ?>"><img src="<?= $img_path ?>" width="<?= $width ?>" height="<?= $height ?>" title="<?= $result_img["image"] ?>" /><a class="del-img" img_id="<?= $result_img["id"] ?>" ></a></li><?php  
    
}while ($result_img = mysqli_fetch_array($query_img));
}


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$('.del-img').click(function(e){
e.preventDefault();
   var img_id = $(this).attr("id").substring(3);
 
    var title_img = $("#del"+img_id+" > img").attr("title");
    
  $.ajax({
  type: "POST",
  url: "./actions/delete-gallery.php",
  data: "id="+img_id+"&title="+title_img,
  dataType: "html",
  cache: false,
  success: function(data) { 
  if (data == "delete")
  {
     $("#del"+img_id).fadeOut(300);
  }
                          }
 
});
   
 });
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.04.2020, 12:52
если вы изменили тут
Цитата Сообщение от aleks20161 Посмотреть сообщение
var img_id = $(this).attr("id").substring(3);
тогда нужно и тут
Цитата Сообщение от aleks20161 Посмотреть сообщение
<a class="del-img" img_id="<?= $result_img["id"] ?>"
Добавлено через 41 секунду
но, проблема(имхо) не в этом.
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 12:57  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
"del-img
изменений нет удалятся все так же после обновления страницы
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
20.04.2020, 13:21
да, если в js
JavaScript
1
var img_id = $(this).attr("id").substring(3);
то и в html надо так
HTML5
1
<a class="del-img" id="img<?= $result_img["id"] ?>" ></a>
а лучше просто заменить только одну строчку в java script вот так
JavaScript
1
var img_id = $(this).parent().attr("id").substring(3);
тогда html код можно не трогать.
просто по спецификации атр id не должен быть числом, а начинаться с английских букв (быть строкой)
Если проблема не в этом, тогда фантазии не хватает найти причину. там у вас какая-то гугловская ошибка в консоли выводится. Может попробуете в другом браузере потестировать ? прикольно, все вроде правильно, вроде работает, - и бац - не работает.
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 13:27  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
так
в js вот так и в php так все правильно?

PHP
1
2
3
4
5
6
7
$('.del-img').click(function(e){
e.preventDefault();
   var img_id = $(this).parent().attr("id").substring(3);
 
    var title_img = $("#del"+img_id+" > img").attr("title");
    
  $.ajax({
PHP
1
2
3
4
5
6
7
8
$width = 90;
$height = 70;
}
 
 
?><li id="del<?= $result_img["id"] ?>"><img src="<?= $img_path ?>" width="<?= $width ?>" height="<?= $height ?>" title="<?= $result_img["image"] ?>" /><a class="del-img" href="#" id="img<?= $result_img["id"] ?>"/>X</a></li><?php  
    
}while ($result_img = mysqli_fetch_array($query_img));
Добавлено через 3 минуты
Цитата Сообщение от vinikon Посмотреть сообщение
браузере
проверил в яндексе все так же
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
20.04.2020, 13:31
если
Цитата Сообщение от aleks20161 Посмотреть сообщение
var img_id = $(this).parent().attr("id").substring(3) ;
то html код не имеет значения.
$(this).parent() выбирает родительский элемент li , его атрибут id, отбрасывает в нем подстроку 'del' через substring(3) и оставляет чистый id
показанный вами код только если не использовать parent(), а просто $(this).attr("id").substring(3);
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.04.2020, 13:32
Цитата Сообщение от vinikon Посмотреть сообщение
все вроде правильно, вроде работает,
да 100% работает. проверил
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 13:33  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
просто
тип вот эта строчка не нужна
<a class="del-img" href="#" id="img<?= $result_img["id"] ?>"/>X</a>
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
20.04.2020, 13:36
эта строчка должна иметь вид
HTML5
1
<a class="del-img" href="#">X</a>
атрибут id и тем более img_id можно удалить за избыточность
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 13:41  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
class="del-img"
заменил ничего не поменялось. Это может как то связано что он с базы удаляет?
на сайте были и другие ajax запросы и то с этим проблема
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
20.04.2020, 13:46
Цитата Сообщение от aleks20161 Посмотреть сообщение
success: function(data) {
  if (data == "delete")
  {
     $("#del"+img_id).fadeOut(300);
  }
попробуйте эту радость переписать так (временно, для отладки)
JavaScript
1
2
3
4
5
6
success: function(data) {
alert(data) ;
  if (data == "delete")
  {
     $("#del"+img_id).fadeOut(300);
  }
обновите кеш браузера, и попробуйте еще раз удалить файл. что выведется во всплывающем окне?
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 13:49  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
обновите
он просто перекидывает вверх сайта и все всплывающего окна нет и после обновления не удаляет
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
20.04.2020, 14:04
вот такой js код должен быть
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$('.del-img').click(function(e){
    e.preventDefault();
    var img_id = $(this).parent().attr("id").substring(3); 
    var title_img = $("#del"+img_id+" > img").attr("title");    
    $.ajax({
        type: "POST",
        url: "./actions/delete-gallery.php",
        data: "id="+img_id+"&title="+title_img,
        dataType: "html",
        cache: false,
        success: function(data) {
            alert(data);
            if (data == "delete") {
                $("#del"+img_id).fadeOut(300);
            }
       } 
    });   
 });
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 14:12  [ТС]
Цитата Сообщение от vinikon Посмотреть сообщение
быть
вот что вывело
Миниатюры
Проблема с  ajax  
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.04.2020, 14:22
все правильно.
в success приходит delete, следовательно if должен сработать

Добавлено через 56 секунд
ради эксперемента, уберите условие, оставьте только
Цитата Сообщение от vinikon Посмотреть сообщение
$("#del"+img_id).fadeOut(300);
Добавлено через 56 секунд
JavaScript
1
2
3
success: function(data) {
             $("#del"+img_id).fadeOut(300);
}
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
20.04.2020, 14:25
теперь так
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$('.del-img').click(function(e){
    e.preventDefault();
    var img_id = $(this).parent().attr("id").substring(3); 
    var title_img = $("#del"+img_id+" > img").attr("title");    
    $.ajax({
        type: "POST",
        url: "./actions/delete-gallery.php",
        data: "id="+img_id+"&title="+title_img,
        dataType: "html",
        cache: false,
        success: function(data) {
            alert('[' + data + ']');
            if (data == "delete") {
                alert('picture is deleted');
                $("#del"+img_id).fadeOut(300);
            }
       } 
    });   
 });
Добавлено через 24 секунды
опаздал я немного
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 141
20.04.2020, 14:26  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
delete
вот так все заработало
$('.del-img').click(function(e){
e.preventDefault();
var img_id = $(this).parent().attr("id").substring(3) ;
var title_img = $("#del"+img_id+" > img").attr("title");
$.ajax({
type: "POST",
url: "./actions/delete-gallery.php",
data: "id="+img_id+"&title="+title_img,
dataType: "html",
cache: false,
success: function(data) {


$("#del"+img_id).fadeOut(300);

}
});
});
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.04.2020, 14:26

Проблема с ajax в Django
Здравствуйте, уважаемые знатоки. Прошу вашей помощи и подсказки. js скрипт: save_walls.addEventListener(&quot;click&quot;, function ()...

Проблема с отправкой формы (Ajax)
Всем привет, столкнулся с проблемой отправки данных. Использую Ajax jQuery(document).ready(function($) { $('#form').on('click',...

Проблема с Jquery --> Ajax --> php
Jquery часть (here all is right !!!): var mess_str= &quot;nick =&quot;+nick+&quot;&amp;mess =&quot;+mess; $.ajax ({ type: 'POST', ...

AJAX и русские буквы - проблема с кодировкой?
Вопрос отменяется. Задача: То, что в текстовой форме передается пхп-скрипту на выполнение, и в div выводится без перезагрузки страницы...

Ajax и jquery, проблема возврата значения из done
Есть у меня вот такая вот функция function getCorrectionTime(){ var userDate = new Date(); currentTimeZone =...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru