För att utöka vad @Logan Wayne påpekade...
Så, i ditt JavaScript, när du hämtar referenser till dina tabelldataelement, får du alltid den FÖRSTA instansen av ett dokumentobjekt med vilket ID du än anger.
// 2. Define what to do when XHR feed you the response from the server - Start
var product = document.getElementById("product").value; <-- will always return the same element
var pp1 = document.getElementById("pp1").value; <-- will always return the same element
var rp1 = document.getElementById("rp1").value; <-- will always return the same element
var stacking = document.getElementById("stacking").value; <-- will always return the same element
Du måste antingen tilldela unika ID till dina td-objekt, eller, återigen som @Logan Wayne nämnde, använda klassegenskapen för HTML DOM-objekt.
Klasser kan användas för att gruppera liknande element. Efter att ha tilldelat klassnamn till de olika kolumnerna i din tabell (Produkt , Kampanjpris , ordinarie pris , Stabling ) kan du använda getElementsByClassName() för att få en array av td-elementen.
...
var products = document.getElementsByClassName("product"); <-- array of product td elements
...