Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
18 / 18 / 13
Регистрация: 10.11.2010
Сообщений: 143

Выполнение UPDATE запроса

05.09.2013, 19:04. Показов 932. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Есть база данных MySQL, в ней таблица с некоторым набором полей, в том числе и с полем activity типа tinyint (1 или 0). Отражает активность записи. Сейчас все записи выводятся таким способом:
HTML5
1
2
3
4
5
6
{foreach from=$news item=item}
.................................
<p class="date">{$item.news_date}</p>
<p><a href="/v7/adminnews/editnewsform/?id={$item.id_news}">Изменить текст</a></p>
................................
{/foreach}
Необходимо прикрутить булево поле к каждой записи, чтобы оно отражало текущее значение поля activity для соответсвующей записи. При изменении этого флажка должно происходить и изменение значения поля с помощью jquery.
Может кто-нибудь сможет привести близкий к такой задаче пример?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.09.2013, 19:04
Ответы с готовыми решениями:

Выполнение запроса серверу
из браузера посылаю запрос серверу вида: jQuery.post(&quot;ajax.php&quot;,{},function(data) { jQuery('#widget').remove(); ...

Выполнение запроса AJAX
Как при виполнении запроса AJAX на блок где будет загружена информация вставить jif-изображение.

Синхронное выполнение ajax-запроса
Может кто нибудь знает как реализовать действенное выполнение подобной задачи. Нужно узнать что вернет функция удаленный файл, но функция...

13
18 / 18 / 13
Регистрация: 10.11.2010
Сообщений: 143
07.09.2013, 00:34  [ТС]
все еще актуально
0
 Аватар для Refactor
96 / 89 / 29
Регистрация: 05.03.2010
Сообщений: 231
07.09.2013, 00:53
предполагаю вам нужно что то вроде


HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{foreach from=$news item=item}
.................................
<p class="date">{$item.news_date}</p>
<p>
<a href="/v7/adminnews/editnewsform/?id={$item.id_news}">Изменить текст</a>
 
{if activiti == true}
<label><input id="chbx-activity" data-entity-id="{$item.id}" type="checkbox" checked="checked" />Change activity</label>
{else}
<label><input id="chbx-activity" data-entity-id="{$item.id}" checked="checked" />Change activity</label>
{/if}
 
</p>
................................
{/foreach}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    $(document).ready(function () {
 
        $(document).on("click", "#chbx-activity", function (e) {
            e.preventDefault();
       
            $.ajax({
                url: '/MyPath/UpdateMyEntity',
                type: "POST",       
                cache: false,
                data: {
                            entityId: $(this).attr("data-entity-id")
                        },
                success: function (data) {
                   
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    
                }
            });
 
        });
    });
P.S. PHP не знаю, так что писал псевдокодом
1
18 / 18 / 13
Регистрация: 10.11.2010
Сообщений: 143
07.09.2013, 01:00  [ТС]
Refactor, спасибо. То есть в файле "/MyPath/UpdateMyEntity'" я смогу отловить entityId?
0
 Аватар для Refactor
96 / 89 / 29
Регистрация: 05.03.2010
Сообщений: 231
07.09.2013, 01:21
да, он прийдет туда в AJAX запросе
0
18 / 18 / 13
Регистрация: 10.11.2010
Сообщений: 143
07.09.2013, 01:33  [ТС]
Refactor, что-то я наверно не так сделал. написал в head что подключаю библиотеку jquery. потом там же написал тот яваскрипт код, что Вы написали между тегами <script>. конечно изменил url на нормальный. так вот этот метод, что у меня в урле даже не вызывается, судя по всему, так как я туда засунул просто вывод строчки и выход из скрипта, но этого не происходит. в чем может быть ошибка?
0
 Аватар для Refactor
96 / 89 / 29
Регистрация: 05.03.2010
Сообщений: 231
07.09.2013, 01:38
Цитата Сообщение от elluminate Посмотреть сообщение
метод, что у меня в урле
это у вас API? этот метод POST принимает, вы же POST запрос делаете,

покажите полностью код html страницы.
0
18 / 18 / 13
Регистрация: 10.11.2010
Сообщений: 143
07.09.2013, 01:47  [ТС]
Refactor,
HTML5
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <link rel="stylesheet" type="text/css" href="/v7/application/css/list.css">
  <script type="text/javascript" src="/v7/application/js/jquery.js"></script>
  <script>
$(document).ready(function () {
 
        $(document).on("click", "#chbx-activity", function (e) {
            e.preventDefault();
       
            $.ajax({
                url: '/v7/adminnews/updateactivity',
                type: "POST",       
                cache: false,
                data: {
                            id-news: $(this).attr("id-news");
                            news-activity: $(this).attr("news-activity")
                        },
                success: function (data) {
                   
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    
                }
            });
 
        });
    });
  </script>
  <title></title>
  </head>
  <body>
  <img src="/v7/application/pics/logo.jpg" width="150" height="75" alt="Здесь должен быть логотип"/>
  <p class="upr"><a href="/v7/adminnews/addnewsform">Добавить новость</a></p>
{foreach from=$news item=item}
<p><a href="/v7/adminnews/one/?id={$item.id_news}">{$item.news_title}</a></p>
<p class="text">{$item.news_text}</p>
<p class="date">{$item.news_date}</p>
{if $item.news_activity}
<label><input id="chbx-activity" id-news="{$item.id_news}" news-activity="{$item.news_activity}" type="checkbox" checked />Активность</label>
{else}
<label><input id="chbx-activity" id-news="{$item.id_news}" news-activity="{$item.news_activity}" type="checkbox" />Активность</label>
{/if}
<p><a href="/v7/adminnews/editnewsform/?id={$item.id_news}">Изменить текст</a></p>
    <p><a href="/v7/adminnews/delete/?id={$item.id_news}" onclick="return confirm('Удалить новость?')">Удалить новость</a></p>
    <hr align=left width=100% size=2px color=#597da3 background-color=#597da3/>
{/foreach}
<p class="navig">{$navigation}</p>
  </body>
</html>
вот код. так а тот url, что мы указали реально нигде не открывается? просто у меня маршрутизация, из урла достается имя контроллера и имя метода
0
 Аватар для Refactor
96 / 89 / 29
Регистрация: 05.03.2010
Сообщений: 231
07.09.2013, 02:01
у вас было много ошибок в коде, сравните

HTML5
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="generator" content="PSPad editor, www.pspad.com">
    <title></title>
 
    <link rel="stylesheet" type="text/css" href="/v7/application/css/list.css">
    <script type="text/javascript" src="/v7/application/js/jquery.js"></script>
 
    <script type="text/javascript">
        $(document).ready(function () {
 
            $(document).on("click", ".chbx-activity", function (e) {
                e.preventDefault();
                $.ajax({
                    url: '/v7/adminnews/updateactivity',
                    type: "POST",
                    cache: false,
                    data: {
                        newsId: $(this).attr("data-id-news"),
                        newsActivity: $(this).attr("data-news-activity")
                    },
                    success: function (data) {
 
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
 
                    }
                });
            });
        });
    </script>
</head>
<body>
    <div>
        <img src="/v7/application/pics/logo.jpg" width="150" height="75" alt="Здесь должен быть логотип" />
        <p class="upr"><a href="/v7/adminnews/addnewsform">Добавить новость</a></p>
        {foreach from=$news item=item}
    <p><a href="/v7/adminnews/one/?id={$item.id_news}">{$item.news_title}</a></p>
        <p class="text">{$item.news_text}</p>
        <p class="date">{$item.news_date}</p>
        {if $item.news_activity}
    <label>
        <input class="chbx-activity" data-id-news="{$item.id_news}" data-news-activity="{$item.news_activity}" type="checkbox" checked="checked" />Активность</label>
        {else}
    <label>
        <input class="chbx-activity" data-id-news="{$item.id_news}" data-news-activity="{$item.news_activity}" type="checkbox" />Активность</label>
        {/if}
    <p><a href="/v7/adminnews/editnewsform/?id={$item.id_news}">Изменить текст</a></p>
        <p><a href="/v7/adminnews/delete/?id={$item.id_news}" onclick="return confirm('Удалить новость?')">Удалить новость</a></p>
        <hr align="left" width="100%" size="2px" color="#597da3" background-color="#597da3" />
        {/foreach}
    <p class="navig">{$navigation}</p>
    </div>
</body>
</html>



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

а также непишите просто id-news, нужно писать data-id-news, т.к. вы используете html атрибут data для храния параметров
0
18 / 18 / 13
Регистрация: 10.11.2010
Сообщений: 143
07.09.2013, 19:55  [ТС]
Refactor, если заменить на то, что Вы написали в последнем сообщении, то кликнуть по чекбоксу вообще нельзя

Добавлено через 10 минут
Refactor, а если вместо class все же писать id, то кликнуть можно

Добавлено через 5 минут
Цитата Сообщение от Refactor Посмотреть сообщение
$(document).on("click", ".chbx-activity", function (e) {
видимо лишняя точка? без нее работает с class

Добавлено через 21 минуту
Кстати функция клика вроде как не вызывается вообще. если в document ready написать alert, то он выведется конечно, а вот если во внутреннюю функцию, то при клике алерта не появляется

Добавлено через 14 минут
Refactor, а нет, срабатывает эта функция. только вот метод из url все равно не вызывается

Добавлено через 16 часов 55 минут
вот сделал такую функцию
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
script language="javascript" type="text/javascript">
    $(document).ready(function () {
  $('.chbx-activity').click( function () {
  $.ajax({
  type: 'POST',
  url: '/v7/adminnews/updateactivity',
  data: "id= "+$(this).attr("data-id-news")+"&activity= "+$(this).attr("data-news-activity"),
  success: function(html) {
 
  }
  });
  });
  });
  </script>
все передается и вызывается нужный метод, даже изменяется значение в таблице, но только 1 раз. видимо потому, что значение checkbox остается прежним, то есть равным {$item.news_activity}. Нужно как-то обновить генерацию шаблона. Подскажите как это сделать?
0
 Аватар для Refactor
96 / 89 / 29
Регистрация: 05.03.2010
Сообщений: 231
09.09.2013, 01:15
Цитата Сообщение от elluminate Посмотреть сообщение
Refactor, а если вместо class все же писать id, то кликнуть можно
можно, но вы следите чтобы на странице был только один html елемент с id, два одинаковых id на странице быть не должно, иначе получите js ексепшн

Цитата Сообщение от elluminate Посмотреть сообщение
видимо лишняя точка? без нее работает с class
тут все ок, смотрите внимательно документацию по jQuery

Цитата Сообщение от elluminate Посмотреть сообщение
Refactor, а нет, срабатывает эта функция. только вот метод из url все равно не вызывается
у вас синтаксис в ajax методе в секции data неверный, я же уже испарвлял ошибку там,

Цитата Сообщение от elluminate Посмотреть сообщение
Нужно как-то обновить генерацию шаблона
мотрите внимательно документацию по jQuery

шаблона? это уже наверно по PHP вопрос
0
18 / 18 / 13
Регистрация: 10.11.2010
Сообщений: 143
09.09.2013, 17:17  [ТС]
Refactor, да я разобрался с кодом, так что то, что писал до последнего поста неактуально. все работает уже. кроме обновления шаблона конечно. почему же php, если надо обновить без перезагрузки страницы?
0
 Аватар для KaRaNTiN
44 / 44 / 11
Регистрация: 10.06.2009
Сообщений: 311
Записей в блоге: 2
10.09.2013, 11:23
Размещаете элемент формы

HTML5
1
2
3
<form method="post" action="">
<input type="checkbox" name="yes" {if $item.activity == 1} checked="checked"{/if} id="{$item.id_news}">
</form>
и обрабатываете

JavaScript
1
2
3
$("input[type=checkbox]").on("click", function(){
//отправить аякс запрос на страницу с обработкой информации и записи изменений в базу данных
})
0
18 / 18 / 13
Регистрация: 10.11.2010
Сообщений: 143
10.09.2013, 12:50  [ТС]
KaRaNTiN, то, что Вы советуете уже и так сделано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2013, 12:50
Помогаю со студенческими работами здесь

Будет ли скрипт ожидать выполнение AJAX-запроса?
такой вопрос В javascripte обращаешься ajax к контроллу,javascript однопоточный,будет ли он ждать возрата ответа ,или пойдет дальше...

выполнение запросов(Insert,Update)
Через программу подключаюсь к базе данных в MSSQLServer. Подключение работает, проверял :) . есть функция: public void...

Как ускорить выполнение цикла на Update
имеется код на выполнение обновления базы из грида по кнопке, но все дело в том что таблица имеет 17000 строк и все это выполняется очень...

Выполнение запроса и построитель выражений. Поля появляются, а значения не вытягивает в поля запроса
Запрос НАРАХОВАНО Поля для значений появляются, а значения не вытягивает в поля запроса, нужное не расчитывает, хотя и таблицы заполнены....

Результат запроса UPDATE
Добрый вечер. Я делаю запрос UPDATE к серверу SQL Server через рекордсет. Но после выполнения рекордсет сам сразу закрывается. ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru