Всъщност взех вашите скриптове, заредих ги на моя сървър, създадох таблицата на базата данни и тествах скрипта.
Вмъква се само един ред на подаване.
Вашият скрипт работи правилно.
Има обаче недостатък във вашата процедура за тестване.
Проверих и конзолата на Firebug и извикването на AJAX работи според очакванията.
Освен ако нямате друга диагностика, не мисля, че мога да ви помогна повече.
Сигнал за грешка
В кода ви има грешка, която ще ви причини огромна скръб в живота ви през следващите години...
if($stmt){
echo "thank you .we will be in touch soon";
}
else{
echo "there was an error. try again later.";
}
Това if
операторът винаги ще се оценява на истина, тъй като заявката се изпълнява (освен ако, разбира се, MySQL не се изпълнява).
Това, което възнамерявате, е да видите дали вмъкването е било успешно и за това трябва да проверите:
if($stmt->affected_rows){...}
$stmt->affected_rows
ще върне -1 при неуспех или +1 при успех.
Стратегии за отстраняване на грешки
(1) Добавете допълнително поле във вашето с времева марка, за да можете да видите кога записите са вмъкнати. Това ще ви даде повече представа за това, което се случва.
(2) Изпразнете таблицата си и опитайте кода си отново. Може да мислите, че получавате множество вмъквания, но също така може да се окаже, че сте натиснали бутона за изпращане 4 пъти.