what is the problem in this motor control arduino code

Hi friends,
working on an interesting project of switching and operating DC motors through my android device using bluetooth.
In my android application there are two buttons which sends '3' and '4' respectively as follows

Button1 >>> sends '3' on every press to arduino
Button2 >>> sends '4' on every press to arduino

I have written and tested a code only for single button as follow to control a single DC motor to rotate clock wise and anti clock wise on pressing Button1 again and again i.e. on first press motor rotates clock wise and on second press motor should rotate anti clock wise.

here problem is on a single press of Button1 DC motor start rotating clock and anti clock wise infinitely.

any one please help, it would be a great help

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); //RX, TX
int dataFromBT;
boolean toggle;
void setup()
{
mySerial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);

}

void loop()
{
if (mySerial.available())
dataFromBT = mySerial.read();

if (dataFromBT == '3')
{
if(toggle)
{
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2,LOW);
}
if(!toggle)
{
digitalWrite(3, HIGH);
delay(1000);
digitalWrite(3,LOW);
}
toggle=!toggle;
}

}