Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz zamówienia
Forum PHP.pl > Forum > XML, AJAX
d4ng
Witam, tworze własnie stronkę z bardzo prostym formularzem zamówień. Po uzupełnieniu pola "Ilość" i kliknięciu "Zamów" pojawia się poniżej kilka dodatkowych pól "Imie i nazwisko", "Email", "Telefon" itp... po uzupełnieniu można kliknąć "Wyślij zamówienie i wszystko (ilość, imie i nazwisko, email, tel itp) przesyła się na podany w kodzie email. A poniżej pokazuje się napis "Dziękujemy za złożenie zamówienia ktoś skontaktuje się z Państwem w ciągu 24h.
Sam formularz nie jest dla mnie problemem... tylko pokazanie się dodatkowych pól formularza po uzupełnieniu pola "Ilość" bez przeładowania strony... Jak to zrobić? Załączam zamysł narysowany w Paint'cie smile.gif
http://edytor-html.pl/s1.png
http://edytor-html.pl/s2.png
markonix
jQuery i wystarczą dwie funkcje: val() -> show() no i oczywiście event jaki sobie wybierzesz (zmiana wartości inputa, zmiana aktywnego inputa itp. można kilka na raz też).

Ps. Dział nieodpowiedni. To jeszcze nie ajax..
d4ng
Dziękuje za odpowiedź ale czy mógłbym prosić o przykład w kodzie bo z samego tekstu wiele się nie nauczę. Pozdrawiam
Arcioch
Taki bardzo prymitywny przykład ale szef jest w pracy wink.gif chodzi tylko o metodę wink.gif

  1. <meta charset="UTF-8">
  2. <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
  3. $(function() {
  4.  
  5. $("#pokazany").submit(function() {
  6. var ilosc = $('input[name=ilosc]').val();
  7.  
  8. if(ilosc == ''){
  9. alert('Uzupełnij ilość produktów');
  10. }else{
  11. $('#uktyry').slideDown('slow');
  12. }
  13.  
  14. return false;
  15. });
  16.  
  17. });
  18. </head>
  19.  
  20. <form method="Post" id="pokazany" action="">
  21. Ilość: <input type="text" name="ilosc" />
  22. <input type="submit" name="show" value="Zamawiam" />
  23. </form>
  24.  
  25. <form method="Post" action="" id="uktyry" style="display: none; clear: both; overflow:hidden;">
  26. Imie i nazwisko: <input type="text" name="imie" />
  27. Email: <input type="text" name="email" />
  28. Imie i nazwisko: <input type="text" name="imie" />
  29. <input type="submit" name="send" value="Wyślij zamówienie" />
  30. </form>
  31. </body>
  32. </html>
d4ng
Wielkie dzięki, myślę że to co zrobiłeś przysłuży się nie tylko mi, ale i "potomnym". Prosiłbym jeszcze o małą poprawkę poniższego kodu, bo po wejściu na strone kod wykonuje się z automatu a jeszcze nieuzupełnione pola lecą na email... Ps. Czy można zrobić tak że komunikat o wysłaniu wiadomości pokazuje się po naciśnięciu przycisku "wyślij zamówienie" bez przeładowania strony? Dziękuje i pozdrawiam

Kod
<?php
        $ilosc = $_POST['ilosc'];
        $imie = $_POST['imie'];
        $email = $_POST['email'];
        $telefon = $_POST['telefon'];
        $adresdo = 'mojemail@firma.pl';
        $temat = "Zamówienie";
        $zawartosc = "Nowe zamówienie na xyz w ilośći $ilosc sztuk od $imie \n\n Dane kontaktowe: \n Email - $email \n Telefon: $telefon";
        if (mail($adresdo, $temat, $zawartosc)) {
            echo "Dziekujemy za złożenie zamówienia. W ciągu 24 skontaktujemy się z Państwem w celu potwierdzenia oraz realizacji zamówienia.";
            } else {
                echo "Zamówienie nie zostało wysłane";
                }
        ?>
        
        <form action="" method="Post" id="pokazany">
        Ilość: <input type="text" name="ilosc" />
        <input type="submit" name="show" value="Zamawiam" />
        </form>

        <form method="Post" action="" id="uktyry" style="display: none; clear: both; overflow:hidden;">
        Imie i nazwisko: <input type="text" name="imie" /><br />
        Email: <input type="text" name="email" /><br />
        Telefon: <input type="text" name="telefon" /><br />
        <input type="submit" name="send" value="Wyślij zamówienie" />
        </form>

Arcioch
To jest tylko przykład trzeba go dopracować i zabezpieczyc wink.gif

plik index.php

  1.  
  2.  
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
  7. $(function() {
  8.  
  9. $("#pokazany").submit(function() {
  10. var ilosc = $('input[name=ilosc]').val();
  11.  
  12. if(ilosc == ''){
  13. alert('Uzupełnij ilość produktów');
  14. }else{
  15. $('#uktyry').slideDown('slow');
  16. }
  17.  
  18. return false;
  19. });
  20.  
  21. $("#uktyry").submit(function() {
  22. var imie = $('input[name=imie]').val();
  23. var email = $('input[name=email]').val();
  24. $.ajax({
  25. type: "POST",
  26. url: "jquery.php",
  27. data: "imie=" + imie + "&email=" + email,
  28. cache: false,
  29. dataType: "json",
  30. success: function(data){
  31.  
  32. $('.respone').html(data.tresc);
  33. }
  34. });
  35. return false;
  36. });
  37.  
  38. });
  39. </script>
  40. </head>
  41. <body>
  42. <div class="respone"></div>
  43. <form method="Post" id="pokazany" action="">
  44. Ilość: <input type="text" name="ilosc" />
  45. <input type="submit" name="show" value="Zamawiam" />
  46. </form>
  47.  
  48. <form method="Post" action="" id="uktyry" style="display: none; clear: both; overflow:hidden;">
  49. Imie i nazwisko: <input type="text" name="imie" /><br />
  50. Email: <input type="text" name="email" /><br />
  51. Telefon: <input type="text" name="telefon" /><br />
  52. <input type="submit" name="send" value="Wyślij zamówienie" />
  53. </form>
  54. </body>
  55. </html>
  56.  


pliki jquery.php

  1.  
  2. <?php
  3. if(isset($_POST['email'])){
  4. $email = $_POST['email'];
  5. $telefon = $_POST['telefon'];
  6. if (@mail($adresdo, $temat, 'asd')) {
  7. echo json_encode(array('status' => 'oki', 'tresc' => "Dziekujemy za złożenie zamówienia. W ciągu 24 skontaktujemy się z Państwem w celu potwierdzenia oraz realizacji zamówienia."));
  8. } else {
  9. echo json_encode(array('status' => 'fail', 'tresc' => "Nic z tego"));
  10. }
  11. }
  12. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.