Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
 Аватар для MAXPOL
6 / 6 / 1
Регистрация: 23.06.2012
Сообщений: 146

Обработка запроса без обновления страницы (Ajax)

14.04.2017, 10:54. Показов 2489. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Появилось задание от конторы сделать СМС рассылку. До этого не кодил на PHP и не писал скриптов на JavaScript, но делать нечего, надо работать. Написал добавление контактов на рассылку, удаление, отправку с разными параметрами, сортировку, но вот все никак не получается сделать добавление, удаление, изменение контактов ну и соответственно отправку смс без перезагрузки страницы, могли бы вы надоумить меня. Разумеется я сам пытался разобраться с Ajax, но все, что то никак.
Весь код находиться в одном файле "index.php".
P.S. Прошу особо не чем в меня не кидаться если где-то кривой код или типа того, так сказать первый опыт.
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
    $mysqli = new mysqli("*", "*", "*", "*");
    $mysqli->set_charset("utf8");
    $result = $mysqli->query ("SELECT * FROM main");    
    foreach ($result as $row) {
        if (isset($_POST['buttonPresent_' . $row['id']])) {
            $sendPresent = "API";
            file_get_contents($sendPresent);
        }       
        if (isset($_POST['buttonAbsent_' . $row['id']])) {
            $sendAbsent = "API";
            file_get_contents($sendAbsent);
        }
        if (isset($_POST['buttonAdd'])){        
            $st_fn=$_POST['st_fn'];
            $st_sn=$_POST['st_sn'];
            $st_mn=$_POST['st_mn'];
            $pr_fn=$_POST['pr_fn'];
            $pr_sn=$_POST['pr_sn'];
            $pr_mn=$_POST['pr_mn'];
            $pr_ph=$_POST['pr_ph'];
            $newRecord = $mysqli->query  ("INSERT INTO main 
                (gp_id, st_fn, st_sn, st_mn, pr_fn, pr_sn, pr_mn, pr_ph) 
            VALUES 
                (0, $st_fn, $st_sn, $st_mn, $pr_fn, $pr_sn, $pr_mn, $pr_ph);");             
        }
        if (isset($_POST['buttonDelete_' . $row['id']])){
            $id = $row['id'];
            $deleteRow = $mysqli->query ("DELETE FROM main WHERE id = $id;");   
        }
        if (isset($_POST['buttonChange_' . $row['id']])){
            $id = $row['id'];
            $st_fn = $_POST['st_fn_' . $row['id']];
            $st_sn = $_POST['st_sn_' . $row['id']]; 
            $pr_ph = $_POST['pr_ph_' . $row['id']];
            $changeRow = $mysqli->query ("UPDATE main SET st_fn = $st_fn, st_sn = $st_sn, pr_ph = $pr_ph WHERE id = $id ;");
        }       
    }
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<head>
    <meta charset="utf-8">
    <title>SMS</title>
<script  type="text/javascript" src="sorting.js"></script>      
</head>
<body>
<table border="1">
    <thead>
        <tr>
            <td >ID</td>
            <td >Student Name</td>
            <td>Student Second name</td>    
            <td>Sent to</td>
            <td>Present</td>
            <td>Absent</td>
        </tr>
    </thead>
    <tbody>
<form action ="" method = "POST">
    <?php foreach ($result as $user) { ?>                   
        <tr>
            <td><?php echo $user['id'];?></td>
            <td><?php echo $user['st_fn'];?></td>
            <td><?php echo $user['st_sn'];?></td>   
            <td><?php echo $user['pr_ph'];?></td>
            <td><input type="submit" name='buttonPresent_<?php echo $user['id'];?>' value='Присутствует'></td>
            <td><input type="submit" name='buttonAbsent_<?php echo $user['id'];?>' value='Отсутствует'></td>
        <tr>        
    <?php } ?>  
    </tbody>
</table>
<hr>
<table border="1">
        <tr>
            <td>Student Name</td>
            <td>Student Second Name</td>
            <td>Student Middle Name</td>
            <td>Parents First Name</td>
            <td>Perents Second Name</td>
            <td>Perents Middle Name</td>
            <td>Sent to</td>
            <td>Add</td>
        </tr>
<form action ="" method = "POST" >              
        <tr>
            <td><input name="st_fn" maxlength="25" size="15" value=""></td>
            <td><input name="st_sn" maxlength="25" size="15" value=""></td>
            <td><input name="st_mn" maxlength="25" size="15" value=""></td>
            <td><input name="pr_fn" maxlength="25" size="15" value=""></td>
            <td><input name="pr_sn" maxlength="25" size="15" value=""></td>
            <td><input name="pr_mn" maxlength="25" size="15" value=""></td>
            <td><input name="pr_ph" maxlength="25" size="15" value=""></td>
            <td><input type="submit" name='buttonAdd' value='Добавить'></td>
        <tr>    
</form>         
</table>
<hr>
<table border="1">
    <thead>
        <tr>
            <td>ID</td>
            <td>Student Name</td>
            <td>Student Second name</td>    
            <td>Sent to</td>
            <td>Change</td>
            <td>Delete</td>
        </tr>
    </thead>
    <tbody> 
<form action ="" method = "POST">
    <?php foreach ($result as $user) { ?>
    
        <tr>
            <td><?php echo $user['id'];?></td>
            <td><input name="st_fn_<?php echo $user['id'];?>" maxlength="25" size="15" value="<?php echo $user['st_fn'];?>"></td>
            <td><input name="st_sn_<?php echo $user['id'];?>" maxlength="25" size="15" value="<?php echo $user['st_sn'];?>"></td>
            <td><input name="pr_ph_<?php echo $user['id'];?>" maxlength="25" size="15" value="<?php echo $user['pr_ph'];?>"></td>
            <td><input type="submit" name='buttonChange_<?php echo $user['id'];?>' value='Изменить'></td>
            <td><input type="submit" name='buttonDelete_<?php echo $user['id'];?>' value='Удалить'></td>
        <tr>
    
    <?php } ?>
        
</form>
    <tbody>
</table>
</body>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2017, 10:54
Ответы с готовыми решениями:

Checkbox ajax php отправка без обновления страницы и без кнопки
Здравствуйте! Можете пожалуйста дать простой пример, понятный без лишних строк, который бы отправлял значение checkbox'а, без...

ajax запрос без обновления страницы
Привет! мне нужно сделать запрос на URL и получить в ответ некоторые данные (в частности access token от сайта vk.com) я пытаюсь...

Обработка без обновления страницы
Задание такое: В первом окне вводим размерность таблицы, нажимаем на кнопку «построить» Во втором окне строится таблица и заполняется...

10
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
14.04.2017, 21:05
JavaScript
1
2
3
4
5
6
7
8
9
10
11
$('body').on('submit', 'form', function(e){
    e.preventDefault();
    var data = $(this).serialize();
    $.ajax({
        data: data,
        type: 'POST',
        success: function(response){
            $('body').html($(response).find('body').html());
        }
    })
});
0
 Аватар для MAXPOL
6 / 6 / 1
Регистрация: 23.06.2012
Сообщений: 146
16.04.2017, 18:38  [ТС]
Добавил в <head> скрипт таким образом, но ничего не изменилось. Скорее всего я, что то не так сделал, можешь в скрипте, что то надо под себя переделать ?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
$('body').on('submit', 'form', function(e){
    e.preventDefault();
    var data = $(this).serialize();
    $.ajax({
        data: data,
        type: 'POST',
        success: function(response){
            $('body').html($(response).find('body').html());
        }
    })
});
</script>
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
16.04.2017, 20:36
jquery нужно подключить, и в конец страницы поместить
0
 Аватар для MAXPOL
6 / 6 / 1
Регистрация: 23.06.2012
Сообщений: 146
16.04.2017, 21:34  [ТС]
Скачал версию jQuery 3.2.1.
Подключил в конце, перед </body>
JavaScript
1
<script type="text/javascript" src="js/jquery.min.js"></script>
Но ничего не изменилось.
Можете, что не так какие то нюансы есть ?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
16.04.2017, 23:11
Цитата Сообщение от MAXPOL Посмотреть сообщение
$.ajax({
* * * * data: data,
* * * * type: 'POST',
* * * * success: function(response){
* * * * * * $('body').html($(response).find('body'). html());
* * * * }
а куда запрос отправляем. где url: 'site.ru'
0
 Аватар для MAXPOL
6 / 6 / 1
Регистрация: 23.06.2012
Сообщений: 146
18.04.2017, 22:13  [ТС]
fanatikus, исправил. Ссылаться надо на localhost.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    <script type="text/javascript">
        $('body').on('submit', 'form', function(e){
            e.preventDefault();
            var data = $(this).serialize();
            $.ajax({
                data: data,
                type: 'POST',
                 url: 'localhost',
                success: function(response){
                    $('body').html($(response).find('body').html());
                }
            })
        });
    </script>
Но, результат не изменился, кнопка срабатывает и ничего, обновляешь страничку и запись в таблице появляется.

Может я не так подхожу ? Может надо ка кто таблицу обновлять без перезагрузки все страницы ?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
18.04.2017, 22:19
Цитата Сообщение от MAXPOL Посмотреть сообщение
Ссылаться надо на localhost.
ответ не верный
примерно так.
url: 'file.php', это если обработчик в одной директории с файлом в котором отправляется запрос
если в этой же директории, но в папке folder/file.php
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
19.04.2017, 07:03
в 3 версии jquery синтаксис другой для ajax, скачайте 1.9.
Подключите перед скриптом в конце страницы, а сам скрипт поместите внутри конструкции
JavaScript
1
2
3
$(function(){
    // сюда вставляем скрипт
})
Урл, насколько я помню, если не указан, то идет обращение к текушему адресу.
И если ничего не получается, откройте в браузере консоль (Ctrl + Shift + K) и смотрите ошибки и вообше уходит ли запрос и что возврашается
0
 Аватар для MAXPOL
6 / 6 / 1
Регистрация: 23.06.2012
Сообщений: 146
19.04.2017, 07:50  [ТС]
alpex, подключил jQuery v.1.9, обернул по вашему совету в
JavaScript
1
2
3
$(function(){
    // сюда вставляем скрипт
})
Но, всё равно не работе и выдаёт вот эту ошибку :
Кликните здесь для просмотра всего текста

Uncaught ReferenceError: $ is not defined
at (index):8
(anonymous) @ (index):8
Миниатюры
Обработка запроса без обновления страницы (Ajax)  
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
19.04.2017, 09:59
Цитата Сообщение от MAXPOL Посмотреть сообщение
$ is not defined
не видит jquery
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2017, 09:59
Помогаю со студенческими работами здесь

Отправка запроса на URL без обновления страницы
Всем привет! помогите пожалуйста с такой задачкой. мне нужно отправить запрос на URL, чтобы пришёл ответ с нужными мне данными. но при...

Отправка post-запроса без обновления страницы
подскажите как отправить post запрос но только чтобы страница с которой он был отправлен не обновилась

Как отправить все чекбоксыы без обновления страницы и без нажатия кнопки?
Нужно обновлять данные без перезагрузки и без нажатия кнопки на странице, пишу так: &lt;form method=&quot;POST&quot;...

Обработка ajax-запроса
Привет! Как мне правильно обработать ajax запрос? Код формируется на php echo &quot;function get_info()&quot;;echo &quot;\r\n&quot;; ...

Ajax обработка запроса
Здравствуйте, у меня проблемы с ajax не понимаю я их видимо(( что не пишу, все не работает... Начну с маленькой задачи: Корзина. В...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru