ਡਾਟਾ ਟੇਬਲ ਫੁੱਟਰ ਸਮ ਡਿਸਪਲੇ ਮੁੱਦੇ ਨੂੰ ਫਿਕਸ ਕਰਨਾ
ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ HTML ਸਾਰਣੀਆਂ ਅਤੇ ਡਾਟਾ ਟੇਬਲ, ਮੁੱਲਾਂ ਦੇ ਜੋੜ ਦੀ ਗਣਨਾ ਕਰਨਾ ਅਕਸਰ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ। ਇੱਕ ਆਮ ਚੁਣੌਤੀ ਡਿਵੈਲਪਰਾਂ ਦਾ ਸਾਹਮਣਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੈ ਕਿ ਜੋੜ ਸਾਰਣੀ ਦੇ ਫੁੱਟਰ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਦਿਖਾਈ ਦੇ ਰਿਹਾ ਹੈ। ਇਹ ਮੁੱਦਾ ਉਦੋਂ ਪੈਦਾ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਗਣਨਾ ਕੀਤੀ ਰਕਮ ਮਨੋਨੀਤ ਫੁੱਟਰ ਦੀ ਬਜਾਏ ਇੱਕ ਵਾਧੂ ਕਤਾਰ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ।
ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਇਹ ਸਮੱਸਿਆ ਅਕਸਰ ਆਉਂਦੀ ਹੈ JavaScript ਜਾਂ jQuery ਵਿੱਚ ਜੋੜ ਗਣਨਾ ਲਈ ਡਾਟਾ ਟੇਬਲ. ਕੁੱਲ ਦੀ ਗਲਤ ਥਾਂ ਫੁੱਟਰ ਤੱਤ ਦੇ ਗਲਤ ਨਿਸ਼ਾਨੇ ਦੇ ਕਾਰਨ ਹੁੰਦੀ ਹੈ। ਇਸ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕੋਡ ਦੇ ਧਿਆਨ ਨਾਲ ਸਮਾਯੋਜਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਕਿ ਜੋੜ ਸਹੀ ਸਥਾਨ 'ਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਤੁਹਾਨੂੰ ਇਸ ਮੁੱਦੇ ਨੂੰ ਸੁਲਝਾਉਣ ਦੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚੋਂ ਲੰਘਾਂਗੇ। ਅਸੀਂ ਦੱਸਾਂਗੇ ਕਿ ਜੋੜ ਫੁੱਟਰ ਵਿੱਚ ਕਿਉਂ ਨਹੀਂ ਦਿਖਾਈ ਦੇ ਰਿਹਾ ਹੈ ਅਤੇ ਇਹ ਦਿਖਾਵਾਂਗੇ ਕਿ ਕੁੱਲ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਦਰਸ਼ਿਤ ਹੋਣ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਸਕ੍ਰਿਪਟ ਨੂੰ ਕਿਵੇਂ ਸੋਧਣਾ ਹੈ।
ਅੰਤ ਤੱਕ, ਤੁਹਾਨੂੰ ਇਸ ਗੱਲ ਦੀ ਸਪਸ਼ਟ ਸਮਝ ਹੋਵੇਗੀ ਕਿ ਡੇਟਾ ਟੇਬਲਾਂ ਵਿੱਚ ਕਾਲਮ ਦੀ ਰਕਮ ਦੀ ਗਣਨਾ ਕਿਵੇਂ ਕਰਨੀ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਫੁੱਟਰ ਵਾਧੂ ਕਤਾਰ ਬਣਾਏ ਬਿਨਾਂ। ਆਓ ਇਸ ਮੁੱਦੇ ਨੂੰ ਕਦਮ-ਦਰ-ਕਦਮ ਹੱਲ ਕਰੀਏ।
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
.eq() | ਦ eq() ਵਿਧੀ ਨੂੰ ਇੱਕ ਖਾਸ ਸੂਚਕਾਂਕ 'ਤੇ ਤੱਤ ਦੀ ਚੋਣ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਸਾਡੇ ਉਦਾਹਰਨ ਵਿੱਚ, ਇਹ ਦਿੱਤੇ ਗਏ ਕਾਲਮ ਇੰਡੈਕਸ 'ਤੇ ਟੇਬਲ ਸੈੱਲ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਨ: $('td', this).eq(ਇੰਡੈਕਸ)। |
.text() | ਇਹ ਵਿਧੀ ਚੁਣੇ ਹੋਏ ਤੱਤਾਂ ਦੀ ਟੈਕਸਟ ਸਮੱਗਰੀ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਜਾਂ ਸੈੱਟ ਕਰਦੀ ਹੈ। ਹੱਲ ਵਿੱਚ, ਇਸਦੀ ਵਰਤੋਂ ਟੇਬਲ ਸੈੱਲ ਤੋਂ ਮੁੱਲ ਕੱਢਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਉਦਾਹਰਨ: $('td').text(). |
ਪਾਰਸਫਲੋਟ() | ਦ ਪਾਰਸਫਲੋਟ() ਫੰਕਸ਼ਨ ਇੱਕ ਸਟ੍ਰਿੰਗ ਨੂੰ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਨੰਬਰ ਵਿੱਚ ਬਦਲਦਾ ਹੈ। ਇਹ ਇੱਥੇ ਸਾਰਣੀ ਸੈੱਲਾਂ ਦੀ ਟੈਕਸਟ ਸਮੱਗਰੀ ਨੂੰ ਗਣਨਾ ਲਈ ਸੰਖਿਆਤਮਕ ਮੁੱਲਾਂ ਵਿੱਚ ਬਦਲਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਨ: parseFloat(cellValue)। |
ਬਦਲੋ() | ਦ ਬਦਲੋ() ਢੰਗ ਇੱਕ ਸਬਸਟਰਿੰਗ ਨੂੰ ਦੂਜੇ ਨਾਲ ਬਦਲਦਾ ਹੈ। ਇਹ ਸੰਖਿਆਵਾਂ ਤੋਂ ਕਾਮਿਆਂ ਨੂੰ ਹਟਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਸਹੀ ਸੰਖਿਆਤਮਕ ਰੂਪਾਂਤਰਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਉਦਾਹਰਨ: cellValue.replace(/,/g, '')। |
ਫਿਕਸਡ() | ਇਹ ਵਿਧੀ ਫਿਕਸਡ-ਪੁਆਇੰਟ ਨੋਟੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਨੰਬਰ ਨੂੰ ਫਾਰਮੈਟ ਕਰਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਜੋੜ ਦੋ ਦਸ਼ਮਲਵ ਸਥਾਨਾਂ ਨਾਲ ਪ੍ਰਦਰਸ਼ਿਤ ਹੋਵੇ। ਉਦਾਹਰਨ: total.toFixed(2)। |
.on('draw.dt') | DataTables ਵਿੱਚ ਇਹ ਇਵੈਂਟ ਲਿਸਨਰ ਹਰ ਵਾਰ ਸਾਰਣੀ ਖਿੱਚਣ ਜਾਂ ਅੱਪਡੇਟ ਹੋਣ 'ਤੇ ਟਰਿੱਗਰ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਵੀ ਡੇਟਾ ਬਦਲਦਾ ਹੈ ਤਾਂ ਇਸਦੀ ਵਰਤੋਂ ਜੋੜ ਦੀ ਮੁੜ ਗਣਨਾ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਉਦਾਹਰਨ: $('#example').on('draw.dt', function() {...})। |
.each() | ਦ ਹਰੇਕ() ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਇੱਕ ਸੰਗ੍ਰਹਿ ਵਿੱਚ ਤੱਤਾਂ ਨੂੰ ਦੁਹਰਾਉਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਹਰੇਕ ਨੂੰ ਇੱਕ ਫੰਕਸ਼ਨ ਲਾਗੂ ਕਰਦੇ ਹੋਏ। ਇਹ ਸਾਰਣੀ ਦੀਆਂ ਕਤਾਰਾਂ ਰਾਹੀਂ ਲੂਪ ਕਰਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਉਦਾਹਰਨ: $('ਟੇਬਲ tbody tr').each(function() {...}). |
ਪੁੱਛਗਿੱਛ ਚੋਣਕਾਰ() | ਵਨੀਲਾ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵਿੱਚ, ਪੁੱਛਗਿੱਛ ਚੋਣਕਾਰ() ਇੱਕ ਖਾਸ CSS ਚੋਣਕਾਰ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਪਹਿਲਾ ਤੱਤ ਚੁਣਦਾ ਹੈ। ਇਹ ਟੇਬਲ ਸੈੱਲਾਂ ਅਤੇ ਕਤਾਰਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਨ: table.querySelector('tfoot tr')। |
ਪ੍ਰਾਪਤ ਕਰੋ() | ਦ ਪ੍ਰਾਪਤ ਕਰੋ() ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਸਰਵਰ ਨੂੰ ਅਸਿੰਕ੍ਰੋਨਸ ਬੇਨਤੀਆਂ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਬੈਕਐਂਡ ਤੋਂ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਸਾਡੇ Node.js ਉਦਾਹਰਨ ਵਿੱਚ, ਇਸਦੀ ਵਰਤੋਂ ਡੇਟਾ ਭੇਜਣ ਅਤੇ ਰਕਮ ਵਾਪਸ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਉਦਾਹਰਨ: ਪ੍ਰਾਪਤ ਕਰੋ('/calculate-sum', {...})। |
ਡਾਟਾ ਟੇਬਲ ਫੁੱਟਰ ਜੋੜ ਦੀ ਗਣਨਾ ਨੂੰ ਸਮਝਣਾ
ਸਕ੍ਰਿਪਟ ਦਾ ਪ੍ਰਾਇਮਰੀ ਫੰਕਸ਼ਨ ਗਣਨਾ ਕਰਨਾ ਅਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨਾ ਹੈ ਜੋੜ ਇੱਕ ਡੇਟਾ ਟੇਬਲ ਵਿੱਚ ਖਾਸ ਕਾਲਮਾਂ ਦਾ। ਇੱਥੇ ਸੰਬੋਧਿਤ ਚੁਣੌਤੀ ਉਹ ਮੁੱਦਾ ਹੈ ਜਿੱਥੇ ਜੋੜ ਸਾਰਣੀ ਵਿੱਚ ਦਿਖਾਈ ਦੇਣ ਦੀ ਬਜਾਏ ਇੱਕ ਵਾਧੂ ਕਤਾਰ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਿਤ ਹੁੰਦਾ ਹੈ ਫੁੱਟਰ. ਦਾ ਹੱਲ ਇੱਕ ਸੁਮੇਲ ਵਰਤਦਾ ਹੈ jQuery ਅਤੇ JavaScript ਹਰ ਇੱਕ ਕਾਲਮ ਲਈ ਜੋੜ ਦੀ ਗਤੀਸ਼ੀਲ ਗਣਨਾ ਕਰਨ ਲਈ ਅਤੇ ਫਿਰ ਇਸਨੂੰ ਫੁੱਟਰ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਰੱਖੋ।
ਫੰਕਸ਼ਨ ਕਾਲਮ ਦੀ ਗਣਨਾ ਕਰੋ() ਪ੍ਰਕਿਰਿਆ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। ਇਹ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਟੇਬਲ ਦੀ ਹਰੇਕ ਕਤਾਰ ਵਿੱਚੋਂ ਲੰਘਦਾ ਹੈ .each() ਵਿਧੀ ਅਤੇ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਨਿਰਧਾਰਤ ਕਾਲਮ ਤੋਂ ਸੰਖਿਆਤਮਕ ਮੁੱਲਾਂ ਨੂੰ ਕੱਢਦਾ ਹੈ .text() ਅਤੇ ਪਾਰਸਫਲੋਟ() ਫੰਕਸ਼ਨ ਇਹ ਮੁੱਲ ਫਿਰ ਕੁੱਲ ਵਿੱਚ ਇਕੱਠੇ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਹੁਕਮ ਬਦਲੋ() ਇੱਥੇ ਸੰਖਿਆਤਮਿਕ ਸਤਰਾਂ ਵਿੱਚੋਂ ਕਿਸੇ ਵੀ ਕਾਮੇ ਨੂੰ ਹਟਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਮੁੱਲਾਂ ਨੂੰ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਨੰਬਰਾਂ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਪਾਰਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਇੱਕ ਵਾਰ ਕੁੱਲ ਦੀ ਗਣਨਾ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਸਕ੍ਰਿਪਟ ਅਨੁਸਾਰੀ ਫੁੱਟਰ ਸੈੱਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅੱਪਡੇਟ ਕਰਦੀ ਹੈ .eq() ਅਤੇ .text() ਹੁਕਮ. ਦ .eq() ਵਿਧੀ ਆਪਣੇ ਸੂਚਕਾਂਕ ਦੁਆਰਾ ਉਚਿਤ ਫੁੱਟਰ ਸੈੱਲ ਦੀ ਚੋਣ ਕਰਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਜੋੜ ਸਹੀ ਕਾਲਮ ਦੇ ਹੇਠਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਹੱਲ ਨੂੰ ਜੋੜ ਗਣਨਾ ਨੂੰ ਜੋੜ ਕੇ ਕੁਸ਼ਲ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ draw.dt ਇਵੈਂਟ, ਜੋ ਹਰ ਵਾਰ ਡਾਟਾ ਟੇਬਲ ਨੂੰ ਦੁਬਾਰਾ ਖਿੱਚਣ ਜਾਂ ਅੱਪਡੇਟ ਕੀਤੇ ਜਾਣ 'ਤੇ ਚਾਲੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਜਦੋਂ ਵੀ ਡੇਟਾ ਬਦਲਦਾ ਹੈ ਤਾਂ ਜੋੜ ਦੀ ਮੁੜ ਗਣਨਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਦੂਜਾ ਹੱਲ ਵਰਤਦਾ ਹੈ vanilla JavaScript, jQuery 'ਤੇ ਨਿਰਭਰਤਾ ਨੂੰ ਹਟਾਉਣਾ. ਇਹ ਕਤਾਰਾਂ 'ਤੇ ਦਸਤੀ ਦੁਹਰਾਉਣ ਅਤੇ ਜੋੜ ਦੇ ਨਾਲ ਫੁੱਟਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰਕੇ ਉਹੀ ਕਾਰਜਸ਼ੀਲਤਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਇਹ ਹੱਲ ਉਹਨਾਂ ਡਿਵੈਲਪਰਾਂ ਲਈ ਵਧੇਰੇ ਲਚਕਤਾ ਅਤੇ ਮਾਡਯੂਲਰਿਟੀ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ ਜੋ ਬਾਹਰੀ ਲਾਇਬ੍ਰੇਰੀਆਂ ਤੋਂ ਬਚਣਾ ਪਸੰਦ ਕਰਦੇ ਹਨ। ਅੰਤ ਵਿੱਚ, ਤੀਜੀ ਪਹੁੰਚ ਗਣਨਾ ਨੂੰ ਬੈਕਐਂਡ ਵਿੱਚ ਲੈ ਜਾਂਦੀ ਹੈ Node.js, ਜੋ ਕਿ ਸਰਵਰ-ਸਾਈਡ ਪ੍ਰੋਸੈਸਿੰਗ ਤੋਂ ਲਾਭ ਲੈਣ ਵਾਲੇ ਵੱਡੇ ਡੇਟਾਸੇਟਾਂ ਜਾਂ ਗੁੰਝਲਦਾਰ ਓਪਰੇਸ਼ਨਾਂ ਨਾਲ ਨਜਿੱਠਣ ਵੇਲੇ ਉਪਯੋਗੀ ਹੁੰਦਾ ਹੈ।
ਹੱਲ 1: jQuery ਨਾਲ ਪਦਲੇਖ ਦੇ ਜੋੜ ਦੇ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਇਹ ਪਹੁੰਚ ਵਰਤਦਾ ਹੈ jQuery ਡੇਟਾ ਟੇਬਲ ਦੇ ਫੁੱਟਰ ਵਿੱਚ ਜੋੜ ਦੀ ਗਣਨਾ ਕਰਨ ਅਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਜੋੜ ਇੱਕ ਵਾਧੂ ਕਤਾਰ ਬਣਾਏ ਬਿਨਾਂ ਸਹੀ ਫੁੱਟਰ ਸੈੱਲ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ।
function calculateColumn(index) {
var total = 0;
$('table tbody tr').each(function() {
var value = parseFloat($('td', this).eq(index).text().replace(/,/g, ""));
if (!isNaN(value)) {
total += value;
}
});
$('table tfoot td').eq(index).text('Sum: ' + total);
}
$(document).ready(function() {
var table = $('#example').DataTable({
paging: false,
scrollY: 400,
buttons: ['copy', 'excel', 'pdf'],
lengthChange: false
});
table.buttons().container()
.appendTo('#example_wrapper .col-md-6:eq(0)');
$('#example').on('draw.dt', function() {
$('table thead th').each(function(i) {
calculateColumn(i);
});
});
$('table thead th').each(function(i) {
calculateColumn(i);
});
});
ਹੱਲ 2: ਵਨੀਲਾ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਮਾਡਯੂਲਰ ਪਹੁੰਚ
ਇਹ ਹੱਲ ਵਰਤਦਾ ਹੈ vanilla JavaScript jQuery ਵਰਗੀਆਂ ਬਾਹਰੀ ਲਾਇਬ੍ਰੇਰੀਆਂ 'ਤੇ ਭਰੋਸਾ ਕੀਤੇ ਬਿਨਾਂ ਉਹੀ ਨਤੀਜਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ। ਇਹ ਸਕ੍ਰਿਪਟ ਨੂੰ ਵੱਖ-ਵੱਖ ਟੇਬਲ ਬਣਤਰਾਂ ਲਈ ਮਾਡਿਊਲਰ ਅਤੇ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।
function calculateColumnTotal(table, colIndex) {
var total = 0;
var rows = table.querySelectorAll('tbody tr');
rows.forEach(function(row) {
var cellValue = row.cells[colIndex].textContent.trim();
var value = parseFloat(cellValue.replace(/,/g, '')) || 0;
total += value;
});
return total;
}
function displayFooterTotal(table, colIndex, total) {
var footerCell = table.querySelector('tfoot tr td:nth-child(' + (colIndex + 1) + ')');
footerCell.textContent = 'Sum: ' + total.toFixed(2);
}
document.addEventListener('DOMContentLoaded', function() {
var table = document.querySelector('#example');
var colIndexesToSum = [2, 3]; // Indexes of the columns to sum
colIndexesToSum.forEach(function(index) {
var total = calculateColumnTotal(table, index);
displayFooterTotal(table, index, total);
});
});
ਹੱਲ 3: Node.js ਨਾਲ ਪੂਰਾ ਬੈਕਐਂਡ ਗਣਨਾ
ਇਹ ਪਹੁੰਚ ਬੈਕਐਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਜੋੜ ਦੀ ਗਣਨਾ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦੀ ਹੈ Node.js ਅਤੇ ਇੱਕ API ਰਾਹੀਂ ਨਤੀਜਾ ਫਰੰਟ-ਐਂਡ ਨੂੰ ਭੇਜਦਾ ਹੈ।
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json());
app.post('/calculate-sum', (req, res) => {
const { data, columnIndex } = req.body;
let sum = 0;
data.forEach(row => {
const value = parseFloat(row[columnIndex]) || 0;
sum += value;
});
res.json({ sum: sum.toFixed(2) });
});
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
// Front-end fetch call to get sum
fetch('/calculate-sum', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
data: tableData, // Replace with actual data
columnIndex: 2
})
})
.then(response => response.json())
.then(result => console.log('Sum:', result.sum));
ਵੱਡੇ ਡੇਟਾਸੈਟਾਂ ਲਈ ਡੇਟਾਟੇਬਲ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣਾ
ਵਿੱਚ ਵੱਡੇ ਡੇਟਾਸੇਟਾਂ ਨੂੰ ਸੰਭਾਲਦੇ ਸਮੇਂ ਡਾਟਾ ਟੇਬਲ, ਕਾਰਗੁਜ਼ਾਰੀ ਅਨੁਕੂਲਨ ਇੱਕ ਨਾਜ਼ੁਕ ਪਹਿਲੂ ਬਣ ਜਾਂਦਾ ਹੈ। ਜਿਵੇਂ-ਜਿਵੇਂ ਕਤਾਰਾਂ ਦੀ ਗਿਣਤੀ ਵਧਦੀ ਹੈ, ਖਾਸ ਕਾਲਮਾਂ ਲਈ ਜੋੜ ਦੀ ਗਣਨਾ ਕਰਨਾ ਸਾਰਣੀ ਦੀ ਕਾਰਜਸ਼ੀਲਤਾ ਨੂੰ ਹੌਲੀ ਕਰ ਸਕਦਾ ਹੈ। ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਇੱਕ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕਾ ਹੈ ਸਰਵਰ-ਸਾਈਡ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਲਾਭ ਉਠਾਉਣਾ। ਕਲਾਇੰਟ ਸਾਈਡ 'ਤੇ ਸਾਰੇ ਡੇਟਾ ਨੂੰ ਲੋਡ ਕਰਨ ਅਤੇ ਹੇਰਾਫੇਰੀ ਕਰਨ ਦੀ ਬਜਾਏ, ਸਰਵਰ-ਸਾਈਡ ਪ੍ਰੋਸੈਸਿੰਗ ਸਰਵਰ ਨੂੰ ਭਾਰੀ ਲਿਫਟਿੰਗ ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। ਸਾਰਣੀ ਸਿਰਫ਼ ਉਹਨਾਂ ਕਤਾਰਾਂ ਨੂੰ ਰੈਂਡਰ ਕਰੇਗੀ ਜੋ ਵਰਤਮਾਨ ਵਿੱਚ ਉਪਭੋਗਤਾ ਨੂੰ ਦਿਖਾਈ ਦਿੰਦੀਆਂ ਹਨ, ਜੋ ਕਿ ਜਵਾਬਦੇਹੀ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਤੌਰ 'ਤੇ ਸੁਧਾਰ ਕਰਦੀਆਂ ਹਨ।
ਵਿਚਾਰ ਕਰਨ ਲਈ ਇਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਪਹਿਲੂ ਹੈ ਦੀ ਵਰਤੋਂ ਪੰਨਾ ਅੰਕ ਅਤੇ ਸਕ੍ਰੋਲਿੰਗ ਵਿਕਲਪ। ਵੱਡੀ ਮਾਤਰਾ ਵਿੱਚ ਡੇਟਾ ਵਾਲੀਆਂ ਟੇਬਲਾਂ ਲਈ, ਬਹੁਤ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਵਾਲੇ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਹਾਵੀ ਕਰਨ ਤੋਂ ਬਚਣ ਲਈ ਪੰਨਾਬੰਦੀ ਜਾਂ ਸਕ੍ਰੋਲਿੰਗ ਨੂੰ ਸਮਰੱਥ ਕਰਨਾ ਬਿਹਤਰ ਹੈ। ਵਰਗੇ ਵਿਕਲਪ ਸੈੱਟ ਕਰਕੇ scrollY ਅਤੇ ਇੱਕ ਵਾਰ ਵਿੱਚ ਦਿਖਾਈਆਂ ਗਈਆਂ ਕਤਾਰਾਂ ਦੀ ਸੰਖਿਆ ਨੂੰ ਸੀਮਤ ਕਰਦੇ ਹੋਏ, ਤੁਸੀਂ ਸ਼ੁਰੂਆਤੀ ਲੋਡ ਸਮੇਂ ਨੂੰ ਘਟਾ ਸਕਦੇ ਹੋ ਅਤੇ ਇੱਕ ਨਿਰਵਿਘਨ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਨੂੰ ਯਕੀਨੀ ਬਣਾ ਸਕਦੇ ਹੋ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਬਣ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਉਪਭੋਗਤਾ ਛਾਂਟੀ ਅਤੇ ਫਿਲਟਰਿੰਗ ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰ ਰਹੇ ਹੁੰਦੇ ਹਨ।
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਰਕਮ ਦੀ ਮੁੜ ਗਣਨਾ ਕਰਨ ਦੀ ਗਿਣਤੀ ਨੂੰ ਘਟਾ ਕੇ DOM ਹੇਰਾਫੇਰੀ ਨੂੰ ਘੱਟ ਕਰਨਾ ਕੁਸ਼ਲਤਾ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਹਰ ਵਾਰ ਜਦੋਂ ਸਾਰਣੀ ਖਿੱਚੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਜੋੜ ਦੀ ਮੁੜ ਗਣਨਾ ਕਰਨ ਦੀ ਬਜਾਏ, ਤੁਸੀਂ ਗਣਨਾ ਨੂੰ ਉਦੋਂ ਹੀ ਚਾਲੂ ਕਰ ਸਕਦੇ ਹੋ ਜਦੋਂ ਲੋੜ ਹੋਵੇ, ਜਿਵੇਂ ਕਿ ਜਦੋਂ ਡੇਟਾ ਨੂੰ ਫਿਲਟਰ ਜਾਂ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਹੋਵੇ। ਜੋੜਾਂ ਦੀ ਮੁੜ ਗਣਨਾ ਦੀ ਬਾਰੰਬਾਰਤਾ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਸਾਰਣੀ ਜਵਾਬਦੇਹ ਬਣੀ ਰਹਿੰਦੀ ਹੈ ਜਦੋਂ ਕਿ ਫੁੱਟਰ ਵਿੱਚ ਅਜੇ ਵੀ ਸਹੀ ਰਕਮ ਪ੍ਰਦਾਨ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
DataTables ਅਤੇ Sum Calculation ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
- ਮੈਂ ਇੱਕ ਡੇਟਾ ਟੇਬਲ ਵਿੱਚ ਇੱਕ ਖਾਸ ਕਾਲਮ ਨੂੰ ਕਿਵੇਂ ਜੋੜਾਂ?
- ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ $.each() ਕਾਲਮ ਦੇ ਮੁੱਲਾਂ ਨੂੰ ਲੂਪ ਕਰਨ ਅਤੇ ਕੁੱਲ ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ। ਇਸ ਤੋਂ ਬਾਅਦ, ਵਰਤੋਂ .eq() ਜੋੜ ਦੇ ਨਾਲ ਫੁੱਟਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ।
- ਫੁੱਟਰ ਵਿੱਚ ਮੇਰਾ ਜੋੜ ਕਿਉਂ ਨਹੀਂ ਦਿਖਾਈ ਦੇ ਰਿਹਾ ਹੈ?
- ਇਹ ਅਕਸਰ ਹੁੰਦਾ ਹੈ ਜੇਕਰ ਤੁਸੀਂ ਗਲਤ ਫੁੱਟਰ ਤੱਤ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾ ਰਹੇ ਹੋ. ਵਰਤਣਾ ਯਕੀਨੀ ਬਣਾਓ .eq() ਜੋੜ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਫੁੱਟਰ ਵਿੱਚ ਸਹੀ ਸੈੱਲ ਦੀ ਚੋਣ ਕਰਨ ਲਈ।
- ਕੀ ਮੈਂ ਸਰਵਰ-ਸਾਈਡ 'ਤੇ ਰਕਮ ਦੀ ਗਣਨਾ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਹਾਂ, ਤੁਸੀਂ ਸਰਵਰ-ਸਾਈਡ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਤੇ ਜੋੜ ਨੂੰ ਫਰੰਟ-ਐਂਡ 'ਤੇ ਵਾਪਸ ਕਰਕੇ ਸਰਵਰ 'ਤੇ ਜੋੜ ਗਣਨਾ ਨੂੰ ਸੰਭਾਲ ਸਕਦੇ ਹੋ। ਇਹ ਕਲਾਇੰਟ 'ਤੇ ਲੋਡ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ।
- DataTable ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ ਕੀ ਹੈ?
- ਸਰਵਰ-ਸਾਈਡ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਨਾ, ਪ੍ਰਦਰਸ਼ਿਤ ਕਤਾਰਾਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਸੀਮਿਤ ਕਰਨਾ, ਅਤੇ ਜਦੋਂ ਜੋੜ ਦੀ ਗਣਨਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਅਨੁਕੂਲਿਤ ਕਰਨਾ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਦੇ ਸਾਰੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕੇ ਹਨ।
- ਜਦੋਂ ਟੇਬਲ ਡੇਟਾ ਬਦਲਦਾ ਹੈ ਤਾਂ ਮੈਂ ਜੋੜ ਨੂੰ ਕਿਵੇਂ ਅਪਡੇਟ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਤੁਸੀਂ ਜੋੜ ਗਣਨਾ ਨੂੰ ਜੋੜ ਸਕਦੇ ਹੋ draw.dt DataTables ਵਿੱਚ ਇਵੈਂਟ, ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਜਦੋਂ ਵੀ ਸਾਰਣੀ ਨੂੰ ਦੁਬਾਰਾ ਖਿੱਚਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਜੋੜ ਦੀ ਮੁੜ ਗਣਨਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਸਮ ਡਿਸਪਲੇ ਮੁੱਦੇ ਨੂੰ ਸਮੇਟਣਾ
ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਨਾ ਕਿ ਰਕਮ a ਦੇ ਫੁੱਟਰ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ ਡਾਟਾ ਟੇਬਲ ਇਹ ਸਮਝਣ ਦੀ ਲੋੜ ਹੈ ਕਿ ਸਾਰਣੀ ਦੇ ਢਾਂਚੇ ਅਤੇ ਘਟਨਾਵਾਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਕਿਵੇਂ ਬਦਲਣਾ ਹੈ। ਸਹੀ JavaScript ਜਾਂ jQuery ਵਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਕੁਸ਼ਲਤਾ ਨਾਲ ਕੁੱਲਾਂ ਦੀ ਗਣਨਾ ਅਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ।
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਤੁਹਾਡੇ ਡੇਟਾਸੈਟ ਦੇ ਆਕਾਰ 'ਤੇ ਨਿਰਭਰ ਕਰਦਿਆਂ, ਬੈਕਐਂਡ ਪ੍ਰੋਸੈਸਿੰਗ ਜਾਂ ਮਾਡਯੂਲਰ ਕੋਡ ਹੱਲਾਂ ਦੀ ਚੋਣ ਕਰਨਾ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਬਹੁਤ ਸੁਧਾਰ ਸਕਦਾ ਹੈ। ਇਹ ਲੇਖ ਕਈ ਪਹੁੰਚਾਂ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ, ਕਿਸੇ ਵੀ ਡਿਵੈਲਪਰ ਲਈ ਇੱਕ ਵਿਆਪਕ ਹੱਲ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜੋ ਫੁੱਟਰ ਜੋੜ ਡਿਸਪਲੇ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ।
ਪਦਲੇਖ ਜੋੜ ਡਿਸਪਲੇ ਹੱਲ ਲਈ ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
- DataTable ਫੁੱਟਰ ਅਤੇ ਰਕਮ ਦੀ ਗਣਨਾ ਨੂੰ ਸੰਭਾਲਣ ਦਾ ਇਹ ਹੱਲ ਅਧਿਕਾਰਤ DataTables ਦਸਤਾਵੇਜ਼ਾਂ ਤੋਂ ਪ੍ਰੇਰਿਤ ਸੀ। ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ, 'ਤੇ ਜਾਓ ਡਾਟਾ ਟੇਬਲ ਦਸਤਾਵੇਜ਼ .
- jQuery ਦੀ ਵੈੱਬਸਾਈਟ 'ਤੇ ਗਾਈਡ ਤੋਂ ਰਕਮ ਦੀ ਗਣਨਾ ਅਤੇ jQuery ਵਰਤੋਂ ਲਈ ਵਾਧੂ ਤਰੀਕਿਆਂ ਦਾ ਹਵਾਲਾ ਦਿੱਤਾ ਗਿਆ ਸੀ। ਕਮਰਾ ਛੱਡ ਦਿਓ jQuery API ਦਸਤਾਵੇਜ਼ .
- Node.js ਦੇ ਨਾਲ ਬੈਕਐਂਡ ਪ੍ਰੋਸੈਸਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਉਦਾਹਰਣ ਨੂੰ ਅਧਿਕਾਰੀ ਵਿੱਚ ਡੂੰਘਾਈ ਵਿੱਚ ਖੋਜਿਆ ਜਾ ਸਕਦਾ ਹੈ Node.js ਦਸਤਾਵੇਜ਼ .