I had the same problem as you before battling the Elite Four.
My Pokemon lacked level to even compete with their Pokemon, and l ended up trying to grind with annoying Pokemon in Victory Road, it was very slow.
This is what I end up doing, and what I recommend you do.
Spend ALL your money on shops and leave as little left as possible. (Don't worry, you can get tons more after the game)
Battle the Elite Four that is the easiest to beat for you, (experiment with all four, and see which type is easiest for you to beat) than battle them. lf you lose, it's okay, because you'll have no money, and if you eventually kill ONE Pokemon, you will gain tons of experience, and you will slowly level up your Pokemon efficiently, while learning what the Elite Four Pokemon are capable of.
Repeat this until they are no problem, and do the same with the others.
Until your are confident enough to battle the others along with the champion, keep on battling!
I had to re-battle the Elite Four five times before l could beat them for real, it doesn't take that long!
l hope this helps! ~