load a prefab on button click

How would i load a prefab when the user clicks on the button

There are a few ways to do this actually. In a little project I was working on, I did it upon initialization but this should work for you

if(Input.GetMouseButtonDown(0))
{
      GameObject newObject = Resources.Load("Prefabs/YourPrefab") as GameObject;
}

Providing the file path is one way. Another is that you could instantiate a stored Prefab.

    if(Input.GetMouseButtonDown(0))
    {
    GameObject newChild = Instantiate(m_Prefab, transform.position, Quaternion.identity) as GameObject;
    }

For future reference, check the Unity documentation first. They actually answer this exact question for you. I provided the link.