0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33

Замена запятой на точку PHP AJAX JS

25.06.2019, 10:48. Показов 6269. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите поставить замену запятой на точку вот здесь, при вводе количества.
С точкой всё ок. С запятой Internal Error.
http://kolbenjt.beget.tech/ind... duct_id=50
Не пойму, в AJAX запросе надо чтоли или ещё где править.
Пробовал replace, но видимо не туда вставлял. Не работает.
Помогите пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2019, 10:48
Ответы с готовыми решениями:

Замена запятой на точку
<script type="text/javascript"> function calculate() { var price = 0; var price_new = 0; var...

Замена запятой на точку
Здравствуйте! Есть такой файлик. В нем мне надо перемножить два столбика, но проблема в том что вба считает только числа с точкой. А когда...

Замена запятой на точку
Совсем маленький "зацеп". Несколько лет назад все работало как положено. А сегодня перестало. Точку на запятую меняет. Все в порядке. По...

59
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
25.06.2019, 11:46
parazok, давайте код, а то гадание на кофейной гуще получится.
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 11:56  [ТС]
В этом то и проблема, не понимаю откуда дёрнуть код. Вот input-group btn-block тут есть с переменной quantity (количество), которая судя по всему нам и нужна.
Code
1
2
3
4
5
6
7
                    html += '</td>';
                    html += '  <td class="text-left">' + product['model'] + '</td>';
                    html += '  <td class="text-right"><div class="input-group btn-block" style="max-width: 200px;"><input type="text" name="product[' + i + '][quantity]" value="' + product['quantity'] + '" class="form-control" /><span class="input-group-btn"><button type="button" data-toggle="tooltip" title="{{ button_refresh }}" data-loading-text="{{ text_loading }}" class="btn btn-primary"><i class="fa fa-refresh"></i></button></span></div></td>';
                    html += '  <td class="text-right">' + product['price'] + '</td>';
                    html += '  <td class="text-right">' + product['total'] + '</td>';
                    html += '  <td class="text-center" style="width: 3px;"><button type="button" value="' + product['cart_id'] + '" data-toggle="tooltip" title="{{ button_remove }}" data-loading-text="{{ text_loading }}" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>';
                    html += '</tr>';
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
25.06.2019, 12:47
parazok, не то. Это содержимое переменной html. Опять же - Internal Error это серверная ошибка и запятая как-то корячит http запрос, что при получении сервер "сходит с ума" Есть несколько символов, которые нельзя отправлять "как есть", например "+". Поэтому нужен код Вашего ajax, что он там отсылает и код обработчика.
Если Вы просто хотите заменить запятую на точку, чтобы не париться, то можно костыль прикрутить на клиенте. Но всё одно - нужен хотя бы клиентский код.
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 12:51  [ТС]
Вот аякса фрагмент add:

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
// Cart add remove functions
var cart = {
    'add': function(product_id, quantity) {
        $.ajax({
            url: 'index.php?route=checkout/cart/add',
            type: 'post',
            data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
            dataType: 'json',
            beforeSend: function() {
                $('#cart > button').button('loading');
            },
            complete: function() {
                $('#cart > button').button('reset');
            },
            success: function(json) {
                $('.alert-dismissible, .text-danger').remove();
 
                if (json['redirect']) {
                    location = json['redirect'];
                }
 
                if (json['success']) {
                    $('#content').parent().before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
 
                    // Need to set timeout otherwise it wont update the total
                    setTimeout(function () {
                        $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
                    }, 100);
 
                    $('html, body').animate({ scrollTop: 0 }, 'slow');
 
                    $('#cart > ul').load('index.php?route=common/cart/info ul li');
                }
            },
            error: function(xhr, ajaxOptions, thrownError) {
                alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
            }
        });
    },
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
25.06.2019, 13:02
parazok, ну ладно, костыль, так костыль.
Кол-во скорее всего в переменной quantity живёт, вот пример, как можно заменить запятую на точку:
JavaScript
1
2
3
let quantity = '1,77';
quantity = quantity.replace(/\,/, '.');
console.log(quantity);
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 13:09  [ТС]
replace понятен, но вот куды его воткнуть, вот в чём основной проблем.

Добавлено через 2 минуты
У меня там ещё столько нюансов, что париться сейчас глобально не могу. Пока важные проблемы устраняю. Запятая сейчас очень важная деталь процесса. Как кость в горле. Не даёт двигаться дальше. А аякс не изучал совсем.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
25.06.2019, 13:33
parazok,
попробуйте перед этой строкой:
JavaScript
1
data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
вставить эту:
JavaScript
1
quantity = quantity.replace(/\,/, '.');
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 13:44  [ТС]
не работает. На сайте всё то же самое.
экранировать надо как-то? а то это вроде как получается вставка php прямо в код ajax. даже бегет-оболочка-спрутио крестиками обозначила ошибку.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
25.06.2019, 13:48
parazok, внесите цифру заведомо с запятой, после строки
JavaScript
1
quantity = quantity.replace(/\,/, '.');
добавьте
JavaScript
1
console.log(quantity);
и посмотрите, что в консоль попало.
Цитата Сообщение от parazok Посмотреть сообщение
экранировать надо как-то
из не знаю, нужно видеть код обработчика.
Цитата Сообщение от parazok Посмотреть сообщение
а то это вроде как получается вставка php прямо в код ajax
это где такое? Нет там такого, да и нельзя вставить, по крайней мере на клиенте.
Цитата Сообщение от parazok Посмотреть сообщение
даже бегет-оболочка-спрутио крестиками обозначила ошибку
что это такое, и где это наставило крестиков?
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 14:16  [ТС]
скрин вложил.
Теперь js перестал работать. В корзинку ничего не добавить.
Миниатюры
Замена запятой на точку PHP AJAX JS  
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 14:29  [ТС]
консоль:
Миниатюры
Замена запятой на точку PHP AJAX JS  
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
25.06.2019, 14:44
parazok, 154 строку уберите - quantity в функцию извне должен попасть.
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 14:54  [ТС]
результат:
Миниатюры
Замена запятой на точку PHP AJAX JS   Замена запятой на точку PHP AJAX JS  
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
25.06.2019, 15:07
parazok, тьфу, это ж объект. Убирайте 156 строку, в 155 строке ; замените на ,
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 15:17  [ТС]
ошибочка.
(замена = на : тоже не прошла).
Миниатюры
Замена запятой на точку PHP AJAX JS   Замена запятой на точку PHP AJAX JS  
0
467 / 431 / 118
Регистрация: 15.02.2012
Сообщений: 1,955
25.06.2019, 15:29
Вы в параметры ajax нафига впихиваете переменные.
В функцию пришли данные вот сразу и делайте замену, перед $.ajax

Добавлено через 1 минуту
я бы сделал отдельно на инпут подмену через onkeyup

Добавлено через 2 минуты
да и реплейс запятой на точку хорошо и через ковычки отрабатывает
JavaScript
1
quantity= quantity.replace(",",".");
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 15:39  [ТС]
попробовал и так
http://kolbenjt.beget.tech/ind... duct_id=50
результат:
Миниатюры
Замена запятой на точку PHP AJAX JS   Замена запятой на точку PHP AJAX JS  
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
25.06.2019, 15:41
parazok, что-то туплю не по-деццки, убираем 155 строку, а эту
JavaScript
1
data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
заменяем на
JavaScript
1
data: 'product_id=' + product_id + '&quantity=' + quantity.replace(/\,/, '.'),
Цитата Сообщение от tgarl Посмотреть сообщение
я бы сделал отдельно на инпут подмену через onkeyup
да, это лучше, только по коду символа для мобильных устройств не будет работать, только по самому символу.
Цитата Сообщение от tgarl Посмотреть сообщение
реплейс запятой на точку хорошо и через ковычки отрабатывает
верно, просто регулярка, как правило требует экранирования спецсимволов.

Добавлено через 1 минуту
parazok, 500 может быть и краш серверного скрипта.
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33
25.06.2019, 22:18  [ТС]
чего-то мы всё сломали. ошибок насыпало странных. щаз буду ковыряться. позже вернусь. спасибо за попытку помочь.

Добавлено через 5 часов 36 минут
Несработало. Всё так же округляет значение до целого, когда вводишь запятую. А с точкой работает.
Что ещё можно предпринять?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2019, 22:18
Помогаю со студенческими работами здесь

Edit замена запятой на точку
Всем доброго дня! Пишу обработчик события Keypress, что-то типа маски ввода даты. Варианты с маскедитом отпадают, прошу не предлагать =) ...

Замена двоеточий в строке на точку с запятой
CОставить программу на языке с# которая выполняет ввод строки с клавиатуры и заменяет двоеточия в строке точками с запятой.

Замена запятой в дроби на точку (replace)
Помогите, пожалуйста, с кодом. У меня есть numericUpDownModel. Вот мой код: //Model decimal Model =...

Замена запятой на точку в PascalABC.NET
Программа выдаёт ошибку, если в программе при вводе числа стоит запятая в строке readln(l) и readln(m). Код программы: Program Optim_ves;...

Замена запятой на точку при копировании в текстовое поле?
Всем доброго дня! Есть программка которая считает бух. суммы автоматом, при копировании суммы пользователем в текстовое поле. Пользователь...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru