Quote from docs for Dynamic
:
continually evaluates f[val,expr] during interactive changing or editing of val.
which explains why your Dynamic
is not touching w
.
Dynamic[pp, {(pp = #; w = pp^2) &} ]
is not interactively changed but automatically when you interactively change InputField
content.
Following those points, your code should be rewritten to:
InputField[Dynamic[pp, {(pp = #; w = pp^2) &}]]
Dynamic[pp]
Dynamic[w]