Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20

Обратная функция

20.11.2009, 03:59. Показов 6477. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, проблема в том что я не могу придумать обратную функцию, или найти аналог.
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
function Send(id)
{
    var req = new JsHttpRequest();
    var send_data = '';
 
    req.onreadystatechange = function() {
        if (req.readyState == 4){
            if (req.responseJS.success == 1){
                    document.getElementById('basket_sum').innerHTML = req.responseJS.count;
                    showProgress('hide');
                }
                else{
                    alert(req.responseJS.error);
                    showProgress('hide');
                }
        }
    }
 
    showProgress('show');
 
    req.open(null, '/ajax_action.php', true);
 
    send_data = 'buy-' + id;
 
    req.send( { q: send_data } );
}
Через этот скрипт происходит добавление элементов в список,добавить/убрать можно со страницы с элементами,но со страницы списка их убрать нельзя. Кнопки использывал одинаковые, скрип подключен на всех страницах, почему нельзя убрать из готового списка я так и не понял.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2009, 03:59
Ответы с готовыми решениями:

Обратная связь
Здравствуйте! Помогите вот с такой проблемкой: Есть формула для подсчета цены (часть кода без описания функции) <form...

Обратная польская запись
помогите написать обратную польскую запись с учетом скобок и желательно с комментариями

Обратная связь на сайте
Здравствуйте на сайте в обратной связи перед оправкой сообщение имеется Введите правильный ответ примера: 9 - 7 Например ввожу не...

40
16 / 16 / 4
Регистрация: 13.08.2009
Сообщений: 43
20.11.2009, 11:09
Интересный у Вас способ создания объекта XMLHttpRequest необходимого для ajax запросов
JavaScript
1
var req = new JsHttpRequest();
хмм не поделитесь линком откуда взяли код. Ну а так если код работает нормально, то по сути он обращается к файлу ajax_action.php на сервере и получает от него ответ - список чего-то там и вставляет в элемент с id="basket_sum", а так же вызывает функцию showProgress(); которая показывает состояние процесса. Больше код ничего не делает, поэтому не понятно про какое добавление/удаление идет речь.
1
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
20.11.2009, 16:57
Приведи весь код страницы и бэкэнда (ajax_action.php).

veglas, JsHttpRequest - это известная библиотека от DKLab.
И, кстати, весьма функциональная.
2
16 / 16 / 4
Регистрация: 13.08.2009
Сообщений: 43
20.11.2009, 18:36
За линк спасибо, обязательно поизучаю сайтец
0
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20
20.11.2009, 23:19  [ТС]
Прикол в том что посути страниц нет, смарти движок, пшп скрипты с хтмл и ксс, а вот там уже стоит ява... Я как разберусь отпишусь, простите за беспокойство

Добавлено через 2 минуты
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
require ('./config.inc');
require ('./kernel/ajax.php');
 
session_start();
 
include(BASEDIR.'/libs/classes.php');
$Connect = new ConnectDB();
 
$JsHttpRequest =& new JsHttpRequest("windows-1251");
 
$data_array = explode("-", $_REQUEST['q']);
 
switch ($data_array[0])
{
    case 'compare':{
        //в $_SESSION[authhash()]['compare'] будет содержатся массив айдишников машин, которые пользователь отобрал для сравнения.
        //айдишник товара
        $id = $data_array[1];
        //если переменная не инициализирована - делаем ее массивом
        if($_SESSION[authhash()]['compare'] == '') $_SESSION[authhash()]['compare'] = array();
        //сохраняем предыдущие значения
        $compares = $_SESSION[authhash()]['compare'];
        //если такое значение в массиве уже есть - это значит, что пользователь убрал галочку для сравнения товара. Поэтому удаляем
        //этот айдишник из массива.
        if (in_array($id, $compares)){
            $key = array_search($id, $compares);
            $compares[$key] = '';
        }else{
            //если в массиве такого айдишника нет - это значит, пользователь отметил галочкой товар для сравнения.
            array_push($compares, $id);
        }
 
        $_compares = array();
 
        foreach($compares as $value)
        {
            if($value<>'') array_push($_compares, $value);
        }
        $_SESSION[authhash()]['compare'] = $_compares;
        $_RESULT = array( "success" => 1, "count"=>count($_compares));
    break;
    }
 
    case 'buy':{
        //проверяем есть ли в сессии массив айдишников кофемашин=>их цен
        if (!empty($_SESSION['machine_prices'])) {
            $prices = $_SESSION['machine_prices'];
        } else {
            $sql="SELECT `id`, `price`, `short_term_price` FROM `machines`";
            $result = mysql_query($sql);
            while ($row = mysql_fetch_assoc($result)) {
 
                if (!empty($row['short_term_price'])) {
                    $prices[$row['id']] = $row['short_term_price'];
                } else {
                    $prices[$row['id']] = $row['price'];
                }
            }
 
            $_SESSION['machine_prices'] = $prices;
        }
 
        //в $_SESSION[authhash()]['buy'] будет содержатся массив айдишников машин, которые пользователь отобрал для покупки.
        //айдишник товара
        $id = $data_array[1];
 
        //если переменная не инициализирована - делаем ее массивом
        if($_SESSION[authhash()]['buy'] == '')
          $_SESSION[authhash()]['buy'] = array();
 
        //сохраняем предыдущие значения
        $buys = $_SESSION[authhash()]['buy'];
        //если такое значение в массиве уже есть - это значит, что пользователь
        //убрал галочку для покупки товара. Поэтому удаляем этот айдишник из массива.
        if (in_array($id, $buys)){
            $key = array_search($id, $buys);
            $buys[$key] = '';
        }else{
            //если в массиве такого айдишника нет - это значит, пользователь отметил галочкой товар для покупки.
            array_push($buys, $id);
        }
 
        $_buys = array();
 
        foreach($buys as $value)
        {
            if($value<>'') array_push($_buys, $value);
        }
 
        $totalPrice = 0;
        foreach ($_buys as $id) {
            $totalPrice+=$prices[$id];
        }
        $totalPrice = (int) $totalPrice;
 
        $_SESSION[authhash()]['buy'] = $_buys;
        $_RESULT = array( "success" => 1, "count"=>ceil($totalPrice) . '.00');
    break;
    }
 
    case 'check_buy_count':{
 
        $_RESULT = array( "success" => 1, "count"=>count($_SESSION[authhash()]['buy']));
 
    break;
    }
 
    case 'check_compare_count':{
 
        $_RESULT = array( "success" => 1, "count"=>count($_SESSION[authhash()]['compare']));
 
    break;
    }
}
 
?>
Добавлено через 13 минут
Вообщем это корзина магазина, если вы не доскажете как сделать функции количества и кнопку удалить, мне прийдеться переделывать все
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
21.11.2009, 13:57
Ну, все переделывать, конечно, не придется...

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

Но есть пара вопросов:
1. Что значит "сделать функции количества"?
2. Что должна удалять кнопка "удалить"?

Вдогонку:
можно ли быть уверенным в том, что у скрипта есть разрешение на удаление данных из БД?

Можем помочь, в принципе, если задача будет сформулирована поточнее
1
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20
21.11.2009, 22:08  [ТС]
У скрипта полные права....
Скрип работает так, через кнопку к скрипту посылается запрос с айди айтема, создается "список" айтемов. Так вот, в конечном списке(корзине) нада добавить клавишу удалить и поле количества айтемов. И еще, я так и не вкурил как сделать общию стоимость постоянной, она обновляется только после добавления.

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
function showProgress(progress_status)
{
    if(progress_status == 'show'){
        document.getElementById('progress').style.visibility = 'visible';
    }else{
        document.getElementById('progress').style.visibility = 'hidden';
    }
}
 
function AddToCompare(id)
{
    var req = new JsHttpRequest();
    var send_data = '';
 
    req.onreadystatechange = function() {
        if (req.readyState == 4){
            if (req.responseJS.success == 1){
                    document.getElementById('confirm_id').innerHTML = '<b>'+req.responseJS.count+'</b>';
                    showProgress('hide');
                }
                else{
                    alert(req.responseJS.error);
                    showProgress('hide');
                }
        }
    }
 
    showProgress('show');
 
    req.open(null, '/ajax_action.php', true);
 
    send_data = 'compare-' + id;
 
    req.send( { q: send_data } );
}
 
function AddToBasket(id)
{
    var req = new JsHttpRequest();
    var send_data = '';
 
    req.onreadystatechange = function() {
        if (req.readyState == 4){
            if (req.responseJS.success == 1){
                    document.getElementById('basket_sum').innerHTML = req.responseJS.count;
                    showProgress('hide');
                }
                else{
                    alert(req.responseJS.error);
                    showProgress('hide');
                }
        }
    }
 
    showProgress('show');
 
    req.open(null, '/ajax_action.php', true);
 
    send_data = 'buy-' + id;
 
    req.send( { q: send_data } );
}
 
function BasketCount()
{
    var req = new JsHttpRequest();
    var send_data = '';
 
    req.onreadystatechange = function() {
        if (req.readyState == 4){
            if (req.responseJS.success == 1){
                    document.getElementById('basket_id').innerHTML = '<b>'+req.responseJS.count+'</b>';
                    showProgress('hide');
                }
                else{
                    alert(req.responseJS.error);
                    showProgress('hide');
                }
        }
    }
 
    req.open(null, '/ajax_action.php', true);
 
    send_data = 'check_buy_count-';
 
    req.send( { q: send_data } );
 
}
 
function CompareCount()
{
    var req = new JsHttpRequest();
    var send_data = '';
 
    req.onreadystatechange = function() {
        if (req.readyState == 4){
            if (req.responseJS.success == 1){
                    document.getElementById('confirm_id').innerHTML = '<b>'+req.responseJS.count+'</b>';
                    showProgress('hide');
                }
                else{
                    alert(req.responseJS.error);
                    showProgress('hide');
                }
        }
    }
 
 
    req.open(null, '/ajax_action.php', true);
 
    send_data = 'check_compare_count-';
 
    req.send( { q: send_data } );
}
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
22.11.2009, 17:54
Цитата Сообщение от DeVolf Посмотреть сообщение
Так вот, в конечном списке(корзине) нада добавить клавишу удалить и поле количества айтемов.
Ну, я надеюсь, с добавлением самой кнопки проблем нет?
Вставляем и привязываем к нажатию функцию RemoveFromBasket(id).

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
function RemoveFromBasket(id)
{
        var req = new JsHttpRequest();
        var send_data = '';
 
        req.onreadystatechange = function() {
                if (req.readyState == 4){
                        if (req.responseJS.success == 1){
                    document.getElementById('basket_sum').innerHTML = req.responseJS.count;
                                        showProgress('hide');
                                }
                                else{
                                        alert(req.responseJS.error);
                                        showProgress('hide');
                                }
            }
        }
 
        showProgress('show');
 
        req.open(null, '/ajax_action.php', true);
 
        send_data = 'remove-' + id;
 
        req.send( { q: send_data } );
}
В action_ajax.php добавляем между строками 114 и 115 обработчик команды remove:

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
        case 'remove':
        
            // пусть $buys будет копией корзины
            $buys = @ $_SESSION[authhash()]['buy'];
            
            // проверяем наличие товара с таким id в корзине
            if (!$buys || ($index = array_search($id, $buys)) === false)
            {
                // ошибочка вышла...
                $_RESULT = array('success' => 0, 'error' => 'В корзине нет товара с таким id');
            }
            else
            {
                // удаляем товар из корзины
                unset($buys[$index]);
                
                // ищем цены на товары; подгружаем из БД, если надо
                if (!isset($_SESSION['machine_prices']))
                {
                    // извлекаем цены из базы данных и записываем в $prices
                    $prices = array();
                    
                    $sql = "SELECT `id`, `price`, `short_term_price` FROM `machines`";
                    $result = mysql_query($sql);
                    
                    while ($row = mysql_fetch_assoc($result))
                        $prices[$row['id'] =
                        (
                            !empty($row['short_term_price']) ?
                            $row['short_term_price'] :
                            $row['price']
                        );
                }
                else $prices = $_SESSION['machine_prices'];
 
                // пересчитываем итоговую сумму покупки
                $totalPrice = 0;
                foreach ($buys as $id) $totalPrice += $prices[$id];
                
                // сохраняем состояние корзины и цены в сессии
                $_SESSION[authhash()]['buy'] = $buys;
                $_SESSION['machine_prices'] = $prices;
                
                // готовим ответ на ajax-запрос
                $_RESULT = array('success' => 1, 'count' => ceil($totalPrice).'.00');
            }
            
            break;
Цитата Сообщение от DeVolf Посмотреть сообщение
И еще, я так и не вкурил как сделать общию стоимость постоянной, она обновляется только после добавления.
Что значит "постоянной"? "Обновляется после добавления" чего?

Добавлено через 50 минут
В 27-ой строке кода для action_ajax.php вместо:

PHP
1
$prices[$row['id'] =
надо:

PHP
1
$prices[$row['id']] =
1
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20
22.11.2009, 21:08  [ТС]
Упс...Я имел ввиду что есть проблемы с общей суммой цен, т.е. сумма обновляется при добавление эл. и при переходе на другую страницу отображается сбивается на 0.
Большое спасибо за скрип, да с кнопкой проблем не будет

Добавлено через 14 минут
Получается нада добавить в скрипт магазина что б при каждом обновлении страницы, пересчитывалась сумма? Как это сделать?
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
22.11.2009, 21:22
Не стоит ее пересчитывать каждый раз.. Достаточно ее сохранить в сессии и при формировании страницы брать оттуда.

Это можно реализовать двумя способами:
1. Через тот же ajax, запрашивая сохраненную сумму у action_ajax.php
2. Сделать PHP-вставку в месте, где эта сумма выводится

А как вообще выводится сама корзина? Как выглядит скрипт, который ее выводит (или подготавливает данные для нее)?
Скорее всего там и надо подправить.
1
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20
22.11.2009, 21:31  [ТС]
HTML5
1
2
3
4
5
    <div id="header">
        <div id="progress" style="position:absolute; top:10px; left:10px; visibility:hidden;">Proceed...</div>
        <div id="basket_id"></div>
        <div id="basket"><span><a href="/buy/" style="color:#E9BE5F">Kорзина</a><br/>товаров на <span id="basket_sum">0.00</span> грн.</span></div>
    </div>
Этот хеадер весит на каждой странице, том как оно работает я не имею ни малейшего понятия...
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
22.11.2009, 21:43
Этот блок инклюдится через PHP или просто вписан во все страницы на сайте?
1
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20
22.11.2009, 21:59  [ТС]
Двиг Смарти и получаеться что инклюдиться, кста я соврал насчет кнопки, не получается что-то

http://109.87.46.171/
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
22.11.2009, 22:14
ОК. Выкладывай аттачментом ajax_action.php (а то он уже довольно большой), попробуем подредактировать.
Самое надежное, видимо, все-таки через ajax сделать..

Смотрю я хтмл - видимо, там еще проблемы с путями к файлам. Почему-то грузиться они пытаются с localhost.
Соответственно, ajax.js не грузится вообще.

Добавлено через 8 минут
Кстати, а чем не устраивала старая система с чекбоксами?
Кликнул чекбокс - товар добавился в корзину, кликнул еще раз - удалился.. Тоже ведь нормальный вариант, не?
1
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20
22.11.2009, 22:22  [ТС]
упс, локалхост из май фейл, сайт живет на флешке и я только недавно по приезду перенес
Чекбокс почемуто работал только с страницы с айтемами, толь я фишки не просцал и при добавлении его в корзину чегото не просчитал, вобщем что б удалить айтем с листа чекбоксом, нада сначала айтем найти там. Вобщем мне там работать и работать, по сути учиться и учиться.
А корзина сейчас выглядит так
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
{include file="user/head.html"}
<body>
<center>
<div id="full">
    {include file="user/header.html"}
    {include file="user/menu.html"}
    <div id="middle">
        <div id="left_block">
            <div class="left_el">
                <h4>Меню сайта</h4>
                {include file="user/list.html"}
            </div>
            <div class="clear"></div>
            <div class="left_el">
                <h4>Контакты</h4>
                {include file="user/contacts.html"}
            </div>
            <div class="left_el_hit">
                <h4>Хиты продаж</h4>
                {include file="user/hits.html"}
            </div>
 
        </div>
 
            <div id="right_block">
 
            <div class="content_el">
                <div class="mash">
                    {if $show_all_ok <> 1}
                    <h1 style="color:#9F6321;font-size:12px;">{$title}</h1>
 
                    {php}
                    //=====================================================================================
                    if(count($_SESSION[authhash()]['buy'])>0)
                    {
                    {/php}
 
                     <form method='post'>
                     <table class="zak" cellpadding="0" cellspacing="0" width="100%">
 
                    {php}
 
                    $i=1;
 
                    print"
                    <tr>
                    <th width=\"2%\"></th>
                    <th width=\"24%\">Название</th>
                    <th width=\"24%\" class=\"last\">Производитель</th>
                    <th width=\"25%\">Тип</th>
                    <th width=\"5%\">Цена</th>
                    <th width=\"5%\">Заказать</th>
                    <th width=\"5%\">Удалить</th></tr>";
 
                        foreach($_SESSION[authhash()]['buy'] as $value)
                        {
                            $sql = "select * from `machines` WHERE id = $value";
                            $result = mysql_query($sql);
                            while($row = @mysql_fetch_array($result)) {
 
                                $producer = @mysql_result(mysql_query('select name from `producers` where id = '.$row['producer']), 0);
                                $type = @mysql_result(mysql_query('select name from `machines_types` where id = '.$row['type']), 0);
                                print"
                        <tr>
                                        <td>$i</td>
                                        <td>$row[name]</td>
                                        <td>$producer</td>
                                        <td>$type</td>
                                        <td class=\"cen\"><span>$row[price]</span> грн.</td>
                                        <td  class=\"last\"><input type='checkbox' checked name='zakazat[".$row['id']."]'></td>
                    <td  class=\"last\"><input type='BUTTON'  VALUE='Удалить' onclick='RemoveFromBasket[".$row['id']."]'></td>
                                    </tr>";
 
                            }
 
                        $i++;
 
                        }
 
                        {/php}
                    </table>
                        {php}
                    }$row[price]
                    //=====================================================================================
                    {/php}
 
 
 
            <span class="spis">Вы можете <b>изменить</b> список заказанных товаров вернувшись к <a href='/shop/Saeco.html'>списку товаров</a>. Для того чтобы <b>удалить</b> товар из списка заказанных товаров
            уберите галочку напротив товара в столбце "Заказать". После того, как Вы сформировали список товаров для покупки укажите Ваши данные. Для этого нажмите
<br><br>
<span onClick="document.getElementById('private_form').style.display='block';document.getElementById('div_submit').style.display='block'" style=\"cursor:pointer\">Заполнить форму</span>.
            </span>
<br><br>
            <div style='display:none;' align='center' id='private_form'>
                <table cellpadding='5' cellspacing='0' border='1'>
                    <tr style="height:35">
                        <td>ФИО<span style='color:red;'>*</span></td><td><input type='text' name='fio' style='width:250'></td>
                    <tr>
                    <tr>
                        <td>Эл. адрес</td><td><input type='text' name='email' style='width:250'></td>
                    </tr>
                    <tr>
                        <td>Контактный тел.<span style='color:red;'>*</span></td><td><input type='text' name='phone' style='width:250'></td> 
                    </tr>
                    <tr>
             <td>Комментари.<span style='color:red;'>*</span></td><td><input type='text' name='comm' style='width:250'></td>
                    </tr>
                </table>
            </div><br>
 
            <div style='display:none;' align='center' id='div_submit'> Поле комментарий желательно использовать для описания желаемых выборочных характеристик.
                После того, как Вы указали личные данные и желаймый комментарий нажмите на кнопку "Подтвердить заказ". Наш менеджер свяжется с Вами в ближайшее время.<br><br>
                <input type='hidden' name='buy_submit' value='1'>
                <input class='button' type='submit' value='Подтвердить заказ'>
            </div>
       </form
                {else}
                        <span class="spis">Ваш заказ успешно обработан! Наш менеджер свяжется с Вами!</span>
                {/if}
 
                </div>
            </div>
        </div>
    </div>
    <div class="clear"></div>
    {include file="user/footer.html"}
</div>
</center>
</body>
</html>
Вложения
Тип файла: zip ajax_action.zip (1.7 Кб, 8 просмотров)
0
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20
22.11.2009, 22:30  [ТС]
а на пыхпыхе кнопка выгдядит так
<input onclick="AddToBasket(' . $mid . ');" type="checkbox" value="" style="*position:relative;top:2px;">
когда переделывал получил это
<td class=\"last\"><input type='checkbox' onclick='AddToBasket[".$row['id']."]'></td>
может я и не ту переменную взял....
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
22.11.2009, 22:48
Ну, теперь все становится более-менее понятно...

Для решения проблемы со сбрасыванием суммы заказа измени тот хэдер, который ты приводил:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        <div id="header">
                <div id="progress" style="position:absolute; top:10px; left:10px; visibility:hidden;">Proceed...</div>
                <div id="basket_id"></div>
                <div id="basket"><span><a href="/buy/" style="color:#E9BE5F">Kорзина</a><br/>товаров на <span id="basket_sum">0.00</span> грн.</span></div>
                <script type="text/javascript">
                    JsHttpRequest.query
                    (
                        '/ajax_action.php',
                        { q: 'basket_sum' },
                        function (result, errors)
                        {
                            document.getElementById('basket_sum').innerHTML = (result ? result.basket_sum : '0.00');
                        },
                        true // запрещает кэширование
                    );
                </script>
        </div>
..и обнови ajax_action.php
Вложения
Тип файла: zip ajax_action.zip (1.8 Кб, 11 просмотров)
1
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
22.11.2009, 22:54
Цитата Сообщение от DeVolf Посмотреть сообщение
а на пыхпыхе кнопка выгдядит так
<input onclick="AddToBasket(' . $mid . ');" type="checkbox" value="" style="*position:relative;top:2px;">
когда переделывал получил это
<td class=\"last\"><input type='checkbox' onclick='AddToBasket[".$row['id']."]'></td>
может я и не ту переменную взял....
Видимо, не ту... Поставь $mid обратно.
1
0 / 0 / 0
Регистрация: 20.11.2009
Сообщений: 20
22.11.2009, 22:56  [ТС]
http://109.87.46.171/
Code
1
Fatal error: Smarty error: [in user/header.html line 10]: syntax error: unrecognized tag: q: 'basket_sum' (Smarty_Compiler.class.php, line 446) in D:\Bogdan\Project\Preeweb\www\libs\Smarty\libs\Smarty.class.php on line 1113
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
22.11.2009, 22:58
Хотя, нет, погоди.. Ты все верно сделал. Должно быть $row['id']
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2009, 22:58
Помогаю со студенческими работами здесь

Обратная связь
Здравствуйте Имеется код: &lt;!-- WhatsHelp.io widget --&gt; &lt;script type=&quot;text/javascript&quot;&gt; (function () { var options = {...

Обратная форма
Знаю, что на форуме очень много таких тем. Я читал их около 3-х часов, но так и не понял. Нужно настроить форму. Вот html &lt;form...

Обратная анимация
Здравствуйте. Начал изучать JQuery, не могу понять как сделать анимацию при нажатии по блоку в одну сторону, а при нажатии на абзац...

Обратная функция
Кто может помочь с решением этого примера, требуется найти обратную функцию У меня получился ответ x=ln(y*(e-1)), верно ли это?

Обратная функция
Здравствуйте! Подскажите, пожалуйста Есть таблица значений одной функции и таблица значений другой функции. Значения по х-одинаковые(но...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru