PHP - как заменить запятую на точку
Зачем менять запятую на точку при вводе форм?
Есть форма для PHP, в которой текстовое поле <input type=text name=amount>. В это поле пользователи будут вводить любое дробное число. Кто-то вводит точку, кто-то запятую PHP впадает в ступор, по его понятиям запятая это не правильно.
Решение:
Сразу после получения данных от пользователя меняем все запятые на десятичные точки
$amount=str_replace(",",".",$amount);
Сразу после получения данных от пользователя меняем все запятые на десятичные точки
$amount=str_replace(",",".",$amount);
Еще попутно возникает проблема в лице "любознательных" пользователей которые вместо цифр пишут все что угодно. Надо проверить, что пользователи ввели цифры.
Решение: Проверяем строку на то, что в ней нет ни чего кроме цифр
if (!preg_match("|^[\d]+$|",$obiem)) { echo "Вы ввели не цифры"; exit;}
else{
//Выполняем код дальше
}
if (!preg_match("|^[\d]+$|",$obiem)) { echo "Вы ввели не цифры"; exit;}
else{
//Выполняем код дальше
}
Комментарии
5 комментариевДля отброски мусора можно сделать так, будут приниматься только символы которые в []:
input type="text" name="тип1" id="тип1_price" class="price" onchange="this.value=this.value.replace(/([^0-9.,])/g,'');" onkeyup="var n=this.value.replace(/([^0-9.,])/g,''); if(n!=this.value) this.value=n;"
ВОПРОС:
А как в этом случае применить $amount=str_replace(",",".",$amount); чтобы запятую заменить на точку? куда вставить этот код?
На сколько я понял приведен кусок кода на JS, а то, что приведено в заметке - это PHP
в Вашем примере name="тип1" передается на сервер там средствами PHP можно и обработать
Скорее всего можно и средствами JS но я не знаю как.
Если все отбросить, то код (это php) выглядет так:
[ input type="text" name="тип1" id="тип1_price" class="price" ]
вмесло [] <> или БЮ в русской расскладке (почему-то при отправке не проходят открытие и закрытие тэга)
Для отброски мусора можно сделать так, будут приниматься только символы которые в []:
ВОПРОС:
А как в этом случае применить $amount=str_replace(",",".",$amount); чтобы запятую заменить на точку? куда вставить этот код?
То что надо!!! Помог!!!