Не совсем корректно работает ajax
Добрый день! Вот код с использованием ajax для добавления и удаления записей в таблицу. Если открыть страницу с данными, то можно и удалять и добавлять... Но! после добавления не работает удаление... id значение становится ''. Но если обновить страницу все опять работает. Может, подскажите в чем причина?
- <script>
- output='';
- $('#post-form').on('submit',function(e){
- event.preventDefault();
- var self = this;
- let _tlt=$("#idtitle").val();
- let csr=$("input[name=csrfmiddlewaretoken]").val();
- console.log($(this).attr('action'))
- mydata={
- title:_tlt,
- csrfmiddlewaretoken:csr,
- }
- $.ajax({
- url:$(this).attr('action'),
- method:"POST",
- data:mydata,
- dataType:"json",
- success:function(data){
- x=data.unit_data;
- if (data.status=='Save'){
- for(i=0;i<x.length;i++){
- output +='<tr><td class="align-middle" style="width:960px;">'+ x[i].title+'</td>'+
- '<td class="text-center align-middle">'+'<input data-sid="{{item.pk}}" value="Update" type="image" src="../static/images/update.png" style="width:25px;">'+'</td>'
- +
- '<td class="text-center align-middle">'+'<input data-sid="{{item.pk}}" data-del="SprDelete" class="btn-del" value="Delete" type="image" src="../static/images/del.png" style="width:28px;">'+'</td></tr>'
- }
- $('#tbody').html(output)
- output='';
- $("form")[0].reset();
- //location.reload();
- }
- if (data.status == 0){
- alert('Запись не добавлена. Возможно, такая уже есть в справочнике...');
- }
- }
- });
- }
- );
- ///////////////////////////////////////////////////////////////////////////////
- /////////////////////////////Delete SPR
- $('#tbody').on('click','.btn-del',function(){
- let id=$(this).attr('data-sid');
- alert(id);
- let pth='/'+$(this).attr('data-del')+'/';
- let csr=$("input[name=csrfmiddlewaretoken]").val();
- mydata={sid:id, csrfmiddlewaretoken:csr,};
- mythis=$(this);
- $.ajax({
- url:pth,
- method:'POST',
- data:mydata,
- success:function(data){
- if(data.status =='Del'){
- $(mythis).closest("tr").fadeOut();
- }
- if(data.status ==0){
- console.log('NO');
- }
- },
- });
- });
- </script>
3
100
Do you like it? Share on social networks!
- Last comments
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
- Now discuss on the forum
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
И если после добавления посмотреть код страницы, то там ничего не изменится. Меняется только после обновления страницы... Может, в этом причина? Что тут можно сделать? Спасибо!
Хотя ошибка скорее всего во view, вот что пишет:
ValueError: Field 'id' expected a number but got ''.
[25/Feb/2023 12:44:04] "POST /SprDelete/ HTTP/1.1" 500 121525
Понятно, id ждет число , а получает пустую строку. Но почему так? Вот сам view
Если просто открыть спраочник, то все отлично работает. Но если добавить, а потом попробовать что-то удалить, то вот эта ошибка, пустая строка в id..
если добавить в JavaScript location.reload () - все будет работать. но зачем мне перезагружать страницу? ч от этого и хочу уйти:(
Вопрос закрыт. Разобрался..
Всё логично. Ты полностью стираешь форму делая form[0].reset() и она становится пустой. То есть данных никаких нет.
А всё, разобрался...