С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470

Событие click

23.02.2016, 12:28. Показов 931. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, начал не так давно работать с ajax, вчера делал добавление в базу без перезагрузки . Не пойму где сделал ошибку. вчера добавлялось 1 раз в базу при каждом добавление как обычно, сделал удаление , а теперь по 2 раза одну и туже инфу добавляет , уже не первый раз такое делаю но не могу понять где ошибка. даже когда валидация проходит пишет 2 раза что "Поля пустые" как будто модальное окно 2 раза запускается и отправляет.
Есть такая формочка не большая.
HTML5
1
2
3
4
5
<div id ='error'></div>
            <input type='text' id='Names' placeholder='Имя' required><br><br>
            <input type='text' id='Emails' placeholder='Email' required><br><br>
            <textarea id ='text'></textarea><br><br>
            <button type="button" id='enter'>Отправить </button>
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
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
$(document).ready(function(){
        $("#knopka1").click(function(){
            $("#ostabvit").fadeIn("fade");
            $("#fon").show();
            
    });
    
        $("#cansel").click(function(){
            $("#ostabvit").hide();
            $("#fon").hide();
    });
        $("#fon").click(function(){
            $("#ostabvit").hide();
            $("#fon").hide();
    });
    
        $("#enter").click(function(){
            var names = $("#Names").val();
            var email = $("#Emails").val();
            var text = $("#text").val();
                if(text =='' || email=='' || names==''){
                    $("#error").fadeIn(2000).html("<b><font color='red'>Пустые поля</font></b>").fadeOut(1000);
                }
                else {
                    $.ajax({
                        type:"POST",
                        url:"class/addclass.php",
                        data:{"name":names,
                              "email":email,
                              "text":text
                             },
                        beforeSend:function(){
                            $("#error").html("<img src='img/refresh.gif' width='30'>");
                        },
                        success:function(data){
                                if(data == 1){
                                        $("#error").html("<font color='green'><b>Ошибка валидации формы</b></font>");
                                }
                                if(data == 2){
                                        $("#error").html("<font color='#000'><b>Добавление произошло успешно</b></font>").delay(6000).fadeOut(2000);
                                            $("#Names").val('');
                                            $("#Emails").val('');
                                            $("#text").val('');
                                            load_messes();
                                            
                                }
                                
                        }
                    });
                    
                }
            
    });
    
    $(".del").click(function(){
        var clicked = this.id.split("-");
        var arr = clicked[1];
            $.ajax ({
                type:"POST",
                url:"class/delete.php",
                data:{"delete":arr},
            success:function(data){
                $("#Nums_"+arr).fadeOut(200);
}           
            });
    });
    
});
function load_messes() {
            $.ajax ({
                type:"POST",
                url:"class/InfaTable.php",
                data:"req=ok",
            success:function(html){
                $("#container").empty();
                $("#container").html(html);     
}           
            });
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2016, 12:28
Ответы с готовыми решениями:

Как обработать событие click и событие нажития стрелки?
Допустим есть кнопка влево-вправо для горизонтального листания товаров. Как нужно кроссбраузерно обрабатывать одновременно событие click...

Событие click
Есть одна проблемма, есть код $('#stat_edit').click(function(){ var or_text = $('#status').html(); ...

Событие click()
Дело такое, есть блок див1 на котором навешено событие клик, а в этом блоке есть еще один блок див2, но дело в том что при клике на див2...

8
Философ-разговорник
 Аватар для Padonak
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
23.02.2016, 13:35
Попробуйте в строках 35, 36 и 39 испольковать что-нибудь другое вместо "data". Например, "Data".
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
23.02.2016, 13:42  [ТС]
Не изменилось ..Всё равно по 2 раза добавляет. Не могу понять что такое то.
0
Философ-разговорник
 Аватар для Padonak
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
23.02.2016, 14:01
Добавляет в БД, как я понимаю, файл class/addclass.php. Не в нем ли дело?
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
23.02.2016, 14:26  [ТС]
Цитата Сообщение от Padonak Посмотреть сообщение
Не в нем ли дело?
Не в нём.
т.к даже перед ajax запросом выводит 2 раза если пустые поля. Тобишь 2 раза выводит поля пустые и 2 раза добавляет в бд если они не пустые.
Цитата Сообщение от Azdeman Посмотреть сообщение
$("#error").fadeIn(2000).html("<b><fon t color='red'>Пустые поля</font></b>").fadeOut(1000);
Добавлено через 1 минуту
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div id='fon'></div>
<center><div id ='content'>
<input type='submit' id='knopka1' value='Оставить сообщение'>
        <div id='container'></div>
        
    <div id='ostabvit'>
    
    <img src='img/cansel.png' width='20' id ='cansel'>
    
    <center><div id ='content1'>
    
    <div id ='error'></div>
            <input type='text' id='Names' placeholder='Имя' required>
            <input type='text' id='Emails' placeholder='Email' required>
            <textarea id ='text'></textarea>
            <button type="button" id='enters'>Отправить </button>
            
            </div>
            </center>
                
        </div>
Вот полностью модалка типо.
0
Философ-разговорник
 Аватар для Padonak
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
23.02.2016, 22:02
Не знаю, что у вас там за шайтан происходит )) Еще и по два раза. Вот имитация вашей отправки данных. Я убрал оттуда все, что не имеет отношения к самой отправке.

index.php

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>XZ</title>
<style>
body{
    text-align:center;
    font-family:Verdana,Helvetica;
    font-size:12px;
    color:#000;
    background-color:#fff;
    margin-top:30px;
}
input,textarea{
    display:block;
    margin-top:10px;
    margin-bottom:10px;
}
.rd{
    color:red;
}
.gr{
    color:green;
}
#error{
    display:none;
    font-size:18px;
}
</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('#enter').click(function(){
$('#error').html('');
var name=$('#Names').val(),
    email=$('#Emails').val(),
    text=$('#text').val();
    
    if(name && email && text){
        $('#error').fadeIn('fast',function(){$(this).html('Отправка...');});
        $.post('class/addclass.php',{name:name,email:email,text:text},function(data){
            if(data == 1){
                $('#error').fadeIn('fast',function(){
                $(this).html('<b class="rd">Ошибка валидации формы</b>');
                });
            }
            if(data == 2){
            $('#error').fadeIn('fast',function(){
                $(this).html('<b class="gr">Добавление произошло успешно</b>').fadeOut(2000,function(){
                    $(this).html('');
                    $('#Names').val('');
                    $('#Emails').val('');
                    $('#text').val('');
                    //load_messes();
                    });
                                                
            });
            }
        });
    }
    else{
        $('#error').fadeIn('fast',function(){
            $(this).html('<b class="rd">Пустые поля</b>').fadeOut(1000,function(){$(this).html('');});
        });
    }
});
});
</script>
</head>
<body>
<center>
<div id="error"></div>
<input type="text" id="Names" placeholder="Имя" />
<input type="text" id="Emails" placeholder="Email" />
<textarea id="text" placeholder="Сообщение"></textarea>
<button type="button" id="enter">Отправить</button>
</center>
</body>
</html>
class/addclass.php (формальная проверка $_POST только для отсылки "ответа сервера")

PHP
1
2
3
4
5
<?php
$output='1';
if(count($_POST)>0){$output='2';};
echo $output;
?>
А вот тут - рабочий пример. Атрибуты required там не нужны, т.к. у вас не присходит отправки формы.
1
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
23.02.2016, 22:17  [ТС]
Уже исправил.. Ошибка была ужасной .. я подключал в файле Infatable.php (вывод инфы из бд) файл js и после отправки формы у меня функция контент подгружает из Infatable.php и она снова вызывала js файл отправки.
В общем нашел ошибку.
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
23.02.2016, 22:18
Цитата Сообщение от Azdeman Посмотреть сообщение
Не в нём.
убедитесь что скрипт не подключается 2-ы.
или дайте мне линк на вашь готовый пример
или дело в php
1
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
23.02.2016, 22:20  [ТС]
Цитата Сообщение от WhiteMind Посмотреть сообщение
убедитесь что скрипт не подключается 2-ы.
в точку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2016, 22:20
Помогаю со студенческими работами здесь

Не срабатывает событие click
&lt;div id=&quot;panel&quot;&gt; &lt;div id=&quot;panel-content&quot; class=&quot;info-map-panel info-map-panel-visible&quot;&gt; &lt;/div&gt; &lt;/div&gt; Есть блок, который...

Не работает Click событие
Народ спасайте, делаю поиск как у гугл, суть такая через ajax запросы по слову которое вводит пользователь я смотрю в бд и вывожу ниже в...

Событие click. Кроссбраузерность
Здравствуйте. Наткнулся на такую проблему. Есть вып. список: &lt;select id=&quot;Type&quot;&gt; &lt;option value=&quot;0&quot;&gt;&lt;/option&gt; ...

Не работает событие click()
Здравствуйте. Написал скрипт с использованием AJAX. Суть скрипта заключается в том, чтобы выводить входящие сообщения из БД. Скрипт...

Наложение элементов и событие click
Здравствуйте. Есть 2 элемента. Один содержит другой (см рисунок). Оба элемента имеют событие клика. Так вот, при клике на крестик...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru