Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Замена значения ячейки таблицы (https://javascript.ru/forum/misc/58190-zamena-znacheniya-yachejjki-tablicy.html)

kolhoznik 09.09.2015 07:48

Замена значения ячейки таблицы
 
Здравствуйте!
Подскажите пожалуйста.
У меня есть таблица товаров. Один из столбцов 'цена' - выводит цену товара. Так как цена в базе данных хранится как цифра, то при не указании цены в форме по умолчанию заполняется '0' и соответственно выводится.
Вопрос как осуществить замену значений таблицы с 0 на 'не указана'.
Значение в ячейке выводится в div class='cena' id нет. Необходимо получать значения по классу.

laimas 09.09.2015 07:52

Цитата:

Сообщение от kolhoznik
при не указании цены в форме по умолчанию заполняется '0' и соответственно выводится.

А может все-таки NULL? Да и цена товара, это обязательное значение, то есть ее не может быть в форме только при добавлении товара.

tsigel 09.09.2015 07:53

Лучше не писать русские слова латиницей, это плохой тон.

<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 08:10

kolhoznik,
Вообще эту задачу должен решать тот кто формирует страницу, я так понял что у вас это сервер.

laimas 09.09.2015 08:14

Цитата:

Сообщение от tsigel
Вообще эту задачу должен решать тот кто формирует страницу

Вообще-то на сервере не должно быть ситуации, при которой цена товара нулевая. Вы себе такой товар представляете? :)

Тем более, если речь о форме, да еще ее значением указать 'Цена не указана', ну так это же полный швах.

tsigel 09.09.2015 08:20

laimas,
Ну ноль там быть не должен, согласен.

kolhoznik 09.09.2015 08:43

Да к сожалению компонент который использую пишет 0 если пустое значение отсылают при типа ячейки int в базе данный.
А значение цена заполняют пользователи в каталоге и не всегда, поскольку некоторые товары цену пока не имеют. Приходится как то думать об избавлении от нуля в выводе товаров.

laimas 09.09.2015 08:54

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

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

Вот только пихать 'Цена не указана' в value поля не стоит, более полезно в placeholder указать допустимый ввод, например максимальная длина значения, а в pattern первая цифра обязательно не 0, а за ней остальные от максимальной длины. А поле value должно быть пустым.

kolhoznik 09.09.2015 09:13

Мне не надо чтобы обязательно была указана цена. Это я легко могу сделать и так.
Нужно просто хотя бы скрыть нули или заменить на произвольный текст.
Тем более кроме цифр в базу ничего не пихнешь так как тип строки int. Менять на text или varhar нельзя так как сортировка не будет работать.
Нужно что то городить на innerthtml

laimas 09.09.2015 09:25

Цитата:

Сообщение от kolhoznik
Менять на text или varhar нельзя

А я вам это предлагал?

Странная у вас база. Если значение может быть не определено, то в базе должно быть NULL у не определенных значений, и соответственно при выводе формы значение поля будет пустым. Зачем пустому значению указывать, что оно не задано, да еще как value?

Или если у вас такие навороты, то value=<?=$var ?: null?>


Часовой пояс GMT +3, время: 05:18.