You could use $_REQUEST instead of get or post, since it checks both, although then you wouldn't know where the id was coming from which might pose some security issues.
Well, i might do it like this (disposing of the ValidateNumric since it's only a wrapper for an existing php function)
echo 'bad'; //or generic display function for errors
Basically if a post request was made, it will check the $_POST['id'] and likewise for get requests.
'Also whats the advantage to adding: ? return true: return false; to the function?'
That's simply the ternary operator, a shorter version of if. Basically it goes like this: condition ? (condition is met) : (condition is not met). Basically none, just a preference - it makes the code clearer for me. Of course, when i was doing this i realised that your function is the same as the is_numeric function, it either returns true or false like the native php function. So there seemed to be no need for it (with or without the ternary operator - it's the same).