I went through the same thing on one of my toyotas. On mine I found out that the starter solenoid wasn't getting full 12volts from the ignition switch. It was getting some voltage to the solenoid to make the starter click but not turn over. Just take the top plug out of the starter and run a wire to it. Touch that wire to the positive of your batter and see if your starter will crank. If it does that means your not getting 12volts to the solenoid. You can also test and trace the ignition plug wire to see why its not putting out 12volts.
My truck does the exact same thing. I ran wires from the positive side and negative side of the started to a push button inside the cab. you still need to turn the key on, but then you have to push the started button. It was much cheaper than a new ignition switch and its kind a cool too