09.09.2015, 07:48
|
Интересующийся
|
|
Регистрация: 07.05.2012
Сообщений: 13
|
|
Замена значения ячейки таблицы
Здравствуйте!
Подскажите пожалуйста.
У меня есть таблица товаров. Один из столбцов 'цена' - выводит цену товара. Так как цена в базе данных хранится как цифра, то при не указании цены в форме по умолчанию заполняется '0' и соответственно выводится.
Вопрос как осуществить замену значений таблицы с 0 на 'не указана'.
Значение в ячейке выводится в div class='cena' id нет. Необходимо получать значения по классу.
|
|
09.09.2015, 07:52
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от kolhoznik
|
при не указании цены в форме по умолчанию заполняется '0' и соответственно выводится.
|
А может все-таки NULL? Да и цена товара, это обязательное значение, то есть ее не может быть в форме только при добавлении товара.
|
|
09.09.2015, 07:53
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
Лучше не писать русские слова латиницей, это плохой тон.
<div class='cena'>
0
</div>
<div class='cena'>
10
</div>
<script>
Array.prototype.forEach.call(document.querySelectorAll('.cena'), function (price) {
if (price.innerHTML.trim() == '0') {
price.innerHTML = 'Цена не указана';
}
});
</script>
Последний раз редактировалось tsigel, 09.09.2015 в 07:58.
|
|
09.09.2015, 08:10
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
kolhoznik,
Вообще эту задачу должен решать тот кто формирует страницу, я так понял что у вас это сервер.
|
|
09.09.2015, 08:14
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от tsigel
|
Вообще эту задачу должен решать тот кто формирует страницу
|
Вообще-то на сервере не должно быть ситуации, при которой цена товара нулевая. Вы себе такой товар представляете?
Тем более, если речь о форме, да еще ее значением указать 'Цена не указана', ну так это же полный швах.
|
|
09.09.2015, 08:20
|
Профессор
|
|
Регистрация: 12.12.2012
Сообщений: 1,398
|
|
laimas,
Ну ноль там быть не должен, согласен.
|
|
09.09.2015, 08:43
|
Интересующийся
|
|
Регистрация: 07.05.2012
Сообщений: 13
|
|
Да к сожалению компонент который использую пишет 0 если пустое значение отсылают при типа ячейки int в базе данный.
А значение цена заполняют пользователи в каталоге и не всегда, поскольку некоторые товары цену пока не имеют. Приходится как то думать об избавлении от нуля в выводе товаров.
|
|
09.09.2015, 08:54
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Значит нужно к этой задаче подходить иначе.
Если товар добавляется, это означает, что его идентификатор не определен и пользователю отдается форма с пустыми значениями. По этому же признаку легко определить, что поле цены в форме необязательное для заполнения.
Как только товар добавлен, он получает идентификатор, в этом случае вызывается эта же самая форма но с заполненными значениями, а поле цены становиться обязательным для заполнения, то есть это уже редактирование товара.
Вот только пихать 'Цена не указана' в value поля не стоит, более полезно в placeholder указать допустимый ввод, например максимальная длина значения, а в pattern первая цифра обязательно не 0, а за ней остальные от максимальной длины. А поле value должно быть пустым.
|
|
09.09.2015, 09:13
|
Интересующийся
|
|
Регистрация: 07.05.2012
Сообщений: 13
|
|
Мне не надо чтобы обязательно была указана цена. Это я легко могу сделать и так.
Нужно просто хотя бы скрыть нули или заменить на произвольный текст.
Тем более кроме цифр в базу ничего не пихнешь так как тип строки int. Менять на text или varhar нельзя так как сортировка не будет работать.
Нужно что то городить на innerthtml
|
|
09.09.2015, 09:25
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от kolhoznik
|
Менять на text или varhar нельзя
|
А я вам это предлагал?
Странная у вас база. Если значение может быть не определено, то в базе должно быть NULL у не определенных значений, и соответственно при выводе формы значение поля будет пустым. Зачем пустому значению указывать, что оно не задано, да еще как value?
Или если у вас такие навороты, то value=<?=$var ?: null?>
|
|
|
|