when my truck did this it was the solenoid on the firewall.. I always start with the cheapest thing first. Cross the terminals with a screw driver with the key in the run position and see if it starts up then. If so then thats your problem its a 10 minute fix make sure you disconnect the battery