I have a database table with 16 fields, in my form I gather 14 of these fields from the user. The other two are an ID that auto-increments, and an enum of '0' and '1'. I need to automatically set the value to '0'.
At the moment, my thinking is to do it like this in my php script
if(isset($_POST["submit"])){
...
$Activated = $_POST['0'];
Is this a way of doing it?
Why would you set the $activated value from the $_POST['0'] if it is always going to be zero? In that case just do $activated = 0;
If the value can alternate between 0 and 1 in the user form, then just grab the value in PHP like this (assuming you need the value to be of type integer and that you've named the input field "enum"): $activated = intval($_POST['enum'])
.
Can post($_POST) allow '0' or will it give an error?
Depends on what you mean by that. The $_POST value can certainly be zero, but remember the data is always sent as strings. If what you mean to ask is if you can access $_POST values in PHP by numerical index, then the answer is no, because $_POST is an associative array. Set a name on the input field (e.g. name="enum") instead and access the value that way, as shown above.
Is there is a better way of setting a value?
Again, not sure exactly what you mean, you need to be more specific, but if you're sending 14 form element values to the server at once, you might want to take a look at the serialize function, assuming you're using jQuery.