Help to do a script

I have a marker, ok when the player enter on the marker press ex:“E” and he will get a job.
i am new to lua i know sosometing not all but i need help to make this.

Client Side:

local table = {
	{x = 867.22,y = -2144.89,z = 29.58}
}

-- Draw Markers --
Citizen.CreateThread(function()
	while true do
		Citizen.Wait(0)
		for k in pairs(table) do
			-- Draw Marker Here --
			DrawMarker(1, table[k].x, table[k].y, table[k].z, 0, 0, 0, 0, 0, 0, 1.001, 1.0001, 0.5001, 0, 0, 255, 200, 0, 0, 0, 0)
		end
	end
end)

Citizen.CreateThread(function()
	while true do
		Citizen.Wait(0)

		for k in pairs(table) do

			local plyCoords = GetEntityCoords(GetPlayerPed(-1), false)
			local dis = Vdist(plyCoords.x, plyCoords.y, plyCoords.z, table[k].x, table[k].y, table[k].z)

			if dis <= 1.2 then
				if IsControlJustPressed(3,176) then
					Citizen.Trace("BUTTON ENTER PRESSED ON MARKER.")
				TriggerServerEvent('esx_joblisting:setJob', data.current.value)
				notification('Tens um novo trabalho')

					
					
				end
			end
		end
	end
end)

function notification(msg)
	SetNotificationTextEntry("STRING")
	AddTextComponentString(msg)
	DrawNotification(false, false)
end
	ESX.TriggerServerCallback('esx_joblisting:getJobsList', function(data)
		local elements = {}
		for i = 1, #data, 1 do
			table.insert(
				elements,
				{label = data[i].label, value = data[i].value}
			)
		end

Server Side

ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)

ESX.RegisterServerCallback('esx_joblisting:getJobsList', function(source, cb)
	MySQL.Async.fetchAll(
		'SELECT * FROM jobs',
		{},
		function(result)
		
			local data = {}
			
			for i=1, #result, 1 do

			
				table.insert(data, {
					value   = result[i].name,
					label   = result[i].label
				})
				
			end
			
			cb(data)
			
		end
	)
	
end)

RegisterServerEvent('esx_joblisting:setJob')
AddEventHandler('esx_joblisting:setJob', function(job)
	local _source = source
	local xPlayer = ESX.GetPlayerFromId(_source)
	xPlayer.setJob(job, 0)
end)

Problaby all is confused and mixed