When decoding SQL errors, it's often helpful to echo out the query itself. For this reason, I usually build the query string in a variable ($sql or $query, for example) so that you can use that variable both in mysql_query() as well as outputting it when an error occurs.
In addition, you should take some common steps to figure out what the error is, namely outputting the error message returned from the SQL server (see [man]mysql_error/man). Apprently, the 'col' element you're POST'ing to the script isn't a column (or else it is, but the column name contains illegal characters/words and must be delimited with backticks).
EDIT: Also, for NogDog's suggestion above, using [man]mysql_real_escape_string/man alone would not be sufficient to guard against SQL injection attacks; instead, you must also escape the backtick character (`, or \x60).