yes, the select list will pass the ID as the value when inserted, that is the desired behavior. it should insert the ID value, that is the proper use a relational database.
the category name is defined in the category tabel you relate the category to an item by using the category ID in the item table.
the point of a relational database is data normalization. it takes less storage to store an ID in the item table to to store a string. you don't want to repeat the category name over and over again, that would be a waste ofd space.
store the ID in the items table which is more efficiant, and use a join query to return the related information from the items and category table when you need to display it.