2010-08-16 3 views
2

У меня есть php-скрипт, который генерирует прейскурант в таблице. Пример сгенерированной таблицы:Выполнение вычислений на ячейках таблицы

<table> 
    <thead> 
    <tr> 
    <th></th> 
    <th>100</th>  
    <th>+100</th>   
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
      <th>A5<span>210x148</span></th> 
      <td>€65.00</td> 
      <td>€8</td> 
     </tr> 
     <tr> 
      <th>A4<span>297x210</span></th> 
      <td>€75.00</td> 
      <td>€16</td> 
     </tr>  
    </tbody> 
</table> 

В принципе, я хочу сделать кнопку, чтобы добавить НДС. Итак: возьмите значения из ценовых ячеек, добавьте 21% и замените исходное значение. Если кнопка снова нажата, она перезапускается.

Моя проблема в том, что я не знаком с jquery и не могу понять, как извлекать и переписывать значения для каждого cel. Я могу получить эффект, который я хочу, если я добавлю идентификатор в ячейку, однако я не могу понять, как это сделать для всех ячеек. Еще одна вещь, с которой я не могу работать, - это снять знак валюты, чтобы выполнить расчет.

Любая помощь была бы принята с благодарностью.

+5

Я не думаю, что вы должны быть делая этот расчет на стороне клиента. Вероятно, было бы лучше, если бы все это было предоставлено во время генерации, с помощью всего лишь способа показать/скрыть его. – Fosco

+1

+1, ajax таблица и установка флага '? Vat = hidden' будет лучше –

+0

Привет Майкельв, если вы найдете ответ полезным, отметьте его как ответ. – Mauro

ответ

2

Один подход должен был бы дать тем «цена» ячеек имя класса

<td class='price'> 

и затем петлю через эту совокупность элементов:

$('price').each(function(index) { 
    vat = $(this).text().replace("$", "") * 1.21; 
    $(this).text() = vat; 
    }); 

непроверенная, но мы надеемся, он передает эту идею.

+1

'' huh? Вы имели в виду '' –

+0

oops; исправленный. – LesterDove

+0

Исправлено имя класса :-), вместо этого вы могли бы использовать 'parseFloat', это означало бы, что вам не нужно будет угадывать, в какой валюте/формате у вас есть. –

1

Вы можете добавить класс к каждой ячейке таблицы, где вы будете иметь цену для расчета НДС как

<td class='priceCell'> 

, а затем сделать что-то, как на первой пресс-кнопки

$('priceCell').each(function(index) { 
    $(this).text() = calculateVAT($(this).text()); 
    }); 

Где calculateVAT это функция javascript, которая вычисляет НДС. Поскольку это решение выполняет вычисление точки с плавающей запятой на число, которое может быть округлено, другим возможным элегантным решением является добавление скрытого столбца с суммами, добавленными НДС, и кнопка просто переключаться между двумя столбцами.

+1

Мне нравится решение скрытого столбца, так как оно позволяет мне выполнять большую часть программирования на PHP. Позвольте мне попробовать это ... – Maikelv

+1

Скрытый столбец на самом деле очень хорошая идея, экономит расчет всей клиентской стороны :-) –

Смежные вопросы