Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Potwierdzenie danych przez użytkownika
Forum PHP.pl > Forum > Przedszkole
maverickoti
Witam.

Potrzebuje napisać potwierdzenie danych wypełnionych w formularzu. Kroki postępowania:
1. Użytkownik wypełnia formularz
2. Klika przycisk Dalej
3. Wyskakuje komunikat w wyliczoną prowizją w PHP z zapytanie czy akceptuje
4. Jeśli kliknie TAK to drukuje się potwierdzenie. Jeśli nie to komunikat się zamyka i wraca do formularza

Wszystko ogólnie jest napisane, tylko nie ma potwierdzenia. Przyznam, że nie mam koncepcji jak to zrobić. Zapewne w JavaScript wyskakujące okienko tylko znowu jak do niego podpiąć wyliczenia, które zostaną przeprowadzone w PHP, który łączy się z bazą danych MySQL pobiera wartości w zależności co użytkownik wpisał w formularzu? Od tych wartości zalerzy czy użytkownik kliknie akceptacje, czy nie. Może dodać kolejną stronę *.php z obliczeniami o komunikatem.

Proszę o jakieś sugestie, naprowadzenie na najrozsądniejsze rozwiązanie.
jacobson
koncowe przeslanie formularza wykonaj przy pomocy jquery $.ajax, przeslij dane do skryptu PHP, tam wszystko niech sie wykona a jako callback success zwroc informacje ktora wyswietlisz w alercie lub jak tylko chcesz.
maverickoti
Okposzedłem tą drogą co jacobson wskazał, czyli ajax i jquery. Przyczytałem z dwa tutki i staram się to ogarnąć. Dla tego przyuczenia zrobiłem prosty przykład o wyliczanie wieku klienta i jeśli wszystko jest dobrze obliczone to wysyła dane do bazy a jak nie to nie. Ogólnie już widzę, że nieźle namieszałem, ale proszę choć o częściowe naprowadzenie to będę walczył dalej:)

index.php:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. </head>
  5. <body>
  6. <form action="potwierdzenie.php" method="post">
  7. Podaj imie: <input name="imie" id="imie" size="12" type="text" required/><br />
  8. Podaj rok urodzenia: <input name="rok" id="rok" size="12" type="text" required/>
  9. <input id="start" type='submit' value='Dalej'/>
  10. </form>
  11. </body>
  12. </head>
  13. <?
  14. $("input#start").click(function() {
  15. var imie=$("#form :text[name=imie]").val();
  16. var rok=$("#form :text[name=rok]").val();
  17. $.ajax({
  18. type: "POST",
  19. url: "potwierdzenie.php",
  20. data: "imie="+imie+"&rok="+rok,
  21. complete: function(wiek) {
  22. alert("Masz "+wiek+" lat?");
  23. success: function() {
  24. $query = "INSERT INTO am_wiek VALUES ('','$imie','$wiek')";
  25. mysql_query($query);
  26. },
  27. error: function() {
  28. alert( "Źle obliczono wiek");
  29. }
  30. });
  31. });
  32. ?>


potwierdzenie.php:
  1. <?
  2. include("dbinfo.inc.php");
  3.  
  4. mysql_connect('localhost', $username, $password);
  5. @mysql_select_db($database) or die("Nie udało się wybrać bazy danych");
  6. mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); */
  7.  
  8. $imie=$_POST['imie'];
  9. $rok=$_POST['rok'];
  10.  
  11. $aktualny_rok=date("Y");
  12. $wiek = $aktualny_rok - $rok;
  13. ?>
Turson
W javascripcie nie wykonasz ot tak zapytania mysql. Po to ajax przesyła dane przez $_POST do potwierdzenie.php żebyś mógł to sobie tak odebrać i obrobić.
maverickoti
Ok rozumiem. To wysłanie do bazy zostawiamy w potwierdzenie.php. Tylko gdzie wpisać zapytanie czy wyliczony wiek użytkownika jest dobry? w "complete: function(wiek) {...", "success: function() {" czy jeszcze gdzieś indziej? Iak zrobić by zapytanie powstało, zanim dane zostaną zapisane w bazie danych?

index.php
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. </head>
  5. <body>
  6. <form action="potwierdzenie.php" method="post">
  7. Podaj imie: <input name="imie" id="imie" size="12" type="text" required/><br />
  8. Podaj rok urodzenia: <input name="rok" id="rok" size="12" type="text" required/>
  9. <input id="start" type='submit' value='Dalej'/>
  10. </form>
  11. </body>
  12. </head>
  13. <?
  14. $("input#start").click(function() {
  15. var imie=$("#form :text[name=imie]").val();
  16. var rok=$("#form :text[name=rok]").val();
  17. $.ajax({
  18. type: "POST",
  19. url: "potwierdzenie.php",
  20. data: "imie="+imie+"&rok="+rok,
  21. complete: function(wiek) {
  22. alert("Masz "+wiek+" lat?");
  23. success: function() {
  24. alert("Masz "+wiek+" lat?");
  25. },
  26. error: function() {
  27. alert( "Źle obliczono wiek");
  28. }
  29. });
  30. });
  31. ?>


powiadomienie.php
  1. <?
  2. include("dbinfo.inc.php");
  3.  
  4. mysql_connect('localhost', $username, $password);
  5. @mysql_select_db($database) or die("Nie udało się wybrać bazy danych");
  6. mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); */
  7.  
  8. $imie=$_POST['imie'];
  9. $rok=$_POST['rok'];
  10.  
  11. $aktualny_rok=date("Y");
  12. $wiek = $aktualny_rok - $rok;
  13.  
  14. $query = "INSERT INTO am_wiek VALUES ('','$imie','$wiek')";
  15. mysql_query($query);
  16. ?>
mis
nie do końca zrozumiałem o co Ci chodzi.
Zapoznaj się np. z tym:

http://tutorialzine.com/2010/12/better-con...ox-jquery-css3/
maverickoti
mis dzięki za tego tutka. Mniej więcej chodzi mi o taki komunikat. Zaczynam go rozpracowywaćsmile.gif
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.