Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 33

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

25.06.2019, 10:48. Показов 6022. Ответов 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 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
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
Ответ Создать тему
Новые блоги и статьи
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