Issue with a problem regarding inserts into a table

I’m trying to find a way of going about inserting data into a table with drop-down options for available fields. However, firstly I need the correct fields to be input. As you can see in my table below I have a foreign key reference of CityId in the members table. When people go to insert data via a form they would enter the city name not an id. Is it possible to have City as the primary key and foreign key reference. Does it matter that it would be a varchar? Also on my second point, is it possible to have a drop down list with the available options from the fields based on the data in the database:

Thanks and apologies if this isn’t too clear. Below are the tables about which this query is based on.

CREATE TABLE Members
(
MemberID int NOT NULL,
LastName varchar(255),
FirstName varchar(255),
CityId int,
PRIMARY KEY (MemberID)
FOREIGN KEY (CityId) REFERENCES City(CityId)
);

CREATE TABLE City
(
CityId int NOT NULL,
City varchar(255),
PRIMARY KEY (CityId)
)

yes, and no, respectively

as to your second point, you’d have to retrieve the options with a SELECT before or while creating the page with the dropdown menu