Форум программистов, компьютерный форум, киберфорум
Наши страницы
and_y87
Войти
Регистрация
Восстановить пароль
Оценить эту запись

PHP+jQuery обновление данных без перезагрузки

Запись от and_y87 размещена 16.10.2014 в 16:24
Обновил(-а) and_y87 20.10.2014 в 12:41
Метки ajax, jquery, 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
// ключ массива который проверяем.
$key = 'index';
 
if ( isset($_POST[$key])  )
{
    $result = [];
    // назначаем переменную с результатом вывода, по умолчанию тру
    // т.к. чаще всего она должна быть именно тру
    $success = true;
    $errCode = 0;
    $errCodeDescription = 'Всё чётко';
 
    if ( (int) $_POST[$key] > 0 )
    {
        // выполняем какой то код...
        // в результате которого олучаем рузультат выполнения кода..
        $result = [
            'data' => 'bla bla lba',
            'html' => '<div> 123123123 </div>'
        ];
        // понимаем: всё ОК или не ок...
        // и если ОШИБКА то собираем инфо об ошибке
        if ( $result == false )
        {
            $success = false;
            $errCode = 1;
            $errCodeDescription = 'и тут: что то пошло не так...';
        }
    }
    else
    {
        // и если ОШИБКА то собираем инфо об ошибке
        $success = false;
        $errCode = 2;
        $errCodeDescription = $key . ' должен быть больше нуля...';
    }
 
    $resp = [
        'data'      => $result,
        'success'   => $success,
        'errCode'   => $errCode,
        'errCodeDescription' => $errCodeDescription
    ];
 
    print( json_encode($resp, true) );
}

Вот так примерно всё выглядит на стороне клиента...
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
$('#some_elem').click(
    function()
    {
        $.ajax({
            url : 'some/url.php',
            data : {
                'index' : 10,
                'type'  : 'addSomeTextVar'
            },
            type : 'POST',
            dataType: "josn",
            success : function(resp)
            {
                if ( resp.success )
                {
                    $('#target').html(resp.data.html);
                    alert(resp.data.data);
                }
                else
                {
                    var str = 'Ошибка #' + resp.errCode + '\n';
                        str+= resp.errCodeDescription;
                    alert( str );
                }
            },
            error : function(resp)
            {
                alert('Непредвиденная ошибка');
            }
        })
    }
);
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru