dandrade, feedback and feedforward are two fundamentally different concepts.
Feedback measures a process variable, like tank level, feeds it back into the control algorithm (calculation or logic) and determines the error. It then manipulates a variable, like flow from the tank, to decrease the error.
PID is just one of many kinds of feedback loop.
Feedforward measures a factor that will disturb the process, like flow into a tank. It then manipulates a variable, like flow out of the tank, to maintain a process variable. The manipulation is based on a known relationship between the two. Flow out = flow in to maintain level for example.
You can use feedforward and feedback together as well. For example, you could "trim" the flow out based on a level measurement to allow for unknown or annaccounted for influences (a leak in the tank, for example.)