Ajutor pentru contact form jQuery

Salut,
Am nevoie de putin ajutor, de o saptamana imi bat capul, dar nu am scos-o la capat.

Problema este urmatoarea:

  • in pagina de contact a site-ului, dupa ce scriu mesaj butonul de “Send Message” se transforma in “Wait …” si ramane asa
  • in mod normal trebuia sa fie asa “Send Message” —> “Wait …” —> “Done !”
  • insa nu imi apare “Done !” ramane blocat pe “Wait …”

Cum se poate remedia problema?

P.S.
Am pus mai jos contact.html, style.css si main.js

Pagina de contact in codepen

Ce întoarce mail.php?

Metoda success din jQuery așteaptă un header 2xx de la server, dar dacă îți crapă, trimite 5xx => nu ajunge în acel callback.

1 Like

@drillbell, problema este in fisierul mail.php.

image
La mine butonul s-a facut verde

Am simulat fisierul mail.php cu

header("Access-Control-Allow-Origin: *");
echo http_response_code(200);
1 Like

La mine ramane blocat pe wait :sob:

Apropo a aparut prima data wait si apoi done ?

I-a posteaza si continutul fisierului php. Scoate ce este confidential din el !

Da

Am facut su un videoclip, dar este prea mare ca sa il incarc aici

Eu am pus asta in contact.php

<?php
header('Access-Control-Allow-Origin: *'); 
echo http_response_code(200);
?>

Si tot nu merge!
:rage:

Nu e nimic confidential … fisierul php l-am pus in html din codepen!

Eu am pus acolo doar ca sa functioneze la mine !

Am spcificat mai sus de ce am pus acele linii.

Aici este videoclip-ul

mail.php

1 Like

Si de ce nu merge la mine … poate ca folosesc din partia D din calaculatorul meu ?

Puteam sa jur ca tu nu testezi scriptul pe localhost.

2 Likes

Am salvat fisierul sub numele de mail.php …
am pus asta in fisierul numit mai sus

<?php
header('Access-Control-Allow-Origin: *'); 
echo http_response_code(200);
?>

dar acum nu imi apare wait … trece direct in done!

Nu stiu ce sa zic ?!?

PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. Originally created by Rasmus Lerdorf in 1994, the PHP reference implementation is now produced by The PHP Group

PHP is a server-side scripting language

Instaleaza XAMPP.

1 Like

Pt ca iti raspunde cu codul 200. Eu am mai pus si un alert. Acel alert facea ca js-ul tau sa astepte ca eu sa dau click pe ok. In acel alert box este codul 200 adica OK de la server

Tu in fisierul php trebuie sa citesti ce trimiti din formular cu $_POST. Apoi folosesti functia mail() ca sa trimiti e-mail ul

1 Like

tu ai formularul, deci trebui doar fisierul mail.php

Instaleaza si xampp dupa cum iti spune si Aysun.

LE: Am am observat ceva dubios

<form class="col-md-6 contact-form" method="POST" action="test.php">
si si requestul ajax tot cu post. Faci acelasi lucru de 2 ori.
Daca vrei sa folosesti ajax, scoate method="POST" action="test.php de la tag-ul form

1 Like

Merci la toti!
Hai ca am rezolvat problema … am pus asta in fisierul contact.php

<?php
mail('[email protected]', $cont_subject, $cont_message);
?>

L-am urcat pe free websting si merge totul ok.

Insa as vrea sa m-ai fac ceva modificari si anume sa se inverzeasc toate campurile cand este timis fisierul (asa cum se face rosu cand nu scrii nimic in campuri) … ce modificari sa fac?

Super !

Marcheaza ca solutie raspunsul care te-a ajutat :slight_smile:

Iti mai adaugi in css o directiva de success. In codul js faci ca textbob-urile sa fie verzi cand require este 0

Iar ca sa revina butonul la “send massage” sa-i bag un delay si un return?

setTimeout($("#cont_submit").val('send message !'), 1000);
 $("#cont_submit").addClass("ok")

am pus bucata asta unde s-a trimis cu succes mesajul

Nu merge erori in sublime text … aici am adaugat

success: function (data) {
                        $(".contact-form input, .contact-form textarea").val('');
                        $("#cont_submit").val('Done !');
                        setTimeout($("#cont_submit").val('Send Message), 1000);
                        $("#cont_submit").addClass("ok");
                    }

Ce eroare iti da ?