Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][JQuery] Zapytanie do bazy danych
Forum PHP.pl > Forum > Przedszkole
Konop857
Witam

Chciałbym się nauczyć JQuery, mógłby mi ktoś powiedzieć jak z poziomu zwykłego formularza wykonać zapytanie do bazy danych?

  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  2.  
  3. <script type="text/javascript">
  4. $(function() {
  5. $(document).ajaxError(function() {
  6. alert('Nie można wysłać danych lub błąd serwera!');
  7. });
  8. $('.form').submit(function() {
  9. var $this = $(this);
  10. $('.error, .info').remove();
  11. if ($this.find('input[name=imie]').val() && $this.find('input[name=nazwisko]').val()) {
  12. $('<p class="info">Nazywasz się ' + $this.find('input[name=imie]').val() + ' ' + $this.find('input[name=nazwisko]').val() + '!</p>')
  13. .css('color', 'green')
  14. .insertAfter($this);
  15. $this.find('input[name=imie], input[name=nazwisko]').val('');
  16. } else {
  17. $('<p class="error">Wypełnij wszystkie pola!</p>')
  18. .css('color', 'red')
  19. .insertAfter($this);
  20. }
  21. return false;
  22. });
  23. });
  24. </script>
  25. <form action='' method='post' class='form'>
  26. Imie :</br>
  27. <input name='imie' type='text'/></br>
  28. Nazwisko :</br>
  29. <input name='nazwisko' type='text'/></br>
  30. <input type='submit' value='Wyślij'/>
  31. </form>


Jak widać, po wypełnieniu formularza pojawi się napis ,,nazywasz się xx!".
A jakby zrobić żeby zamiast napisu wykonywało się zapytanie do bazy danych (bez odświeżania strony) ?

Pozdrawiam
untorched
Stwórz plik PHP łączący się z bazą MySQL i wysyłający do niej zapytanie, którego zwrot zostanie wyświetlony w postaci plain text lub jSON. Następnie przerób skrypt JS tak, aby wykonywał ten plik z odpowiednimi parametrami i odpowiednio interpretował jego zwrot, tym samym zmieniając te dane w kodzie HTML.
pablo_83
nipotrzebnie katujesz się szukając danych inputów przez find,
nadaj im klasy unikatowe dla pola
np:
  1. <input type="text" class="imie" name="imie"/>


aby pobrac wartosc z tego pola wystarczy:
  1. $(document).ready(function(){
  2. var imie = $('.imie').val() // po kropce odwołujesz się dow klasy po # do id
  3.  
  4. //do wyslania tego co zostalo wpisane w formularz potrzebujesz ajaxa, jesli chcesz zrobic to bez przeladowania np w tej postaci (chociaz jquery oferuje skróconą polecam tą, skrócona lubi nie działać w IE)
  5. $.ajax({
  6. type: 'POST', //tutaj albo post albo get
  7. url: "twój adres pliku php",
  8. data: ({
  9. imie: imie // co przesylasz i pod jaką nazwa sie spodziewasz w pliku php
  10. }),
  11. success: function(data){
  12. // w wyniku data badz komunikat
  13. }
  14. });
  15. });
  16.  


po resztę odsyłam do dokumentacji jquery
toffiak
Jeszcze łatwiej będzie użyć serialize() na formularzu.
Konop857
Dzięki za pomoc, teraz mam coś takiego :
  1. <script type="text/javascript">
  2. $(function() {
  3. $(document).ajaxError(function() {
  4. alert('Nie można wysłać danych lub błąd serwera!');
  5. });
  6. $('.form_form').submit(function() {
  7. var $this = $(this);
  8. var $login = $('.form_login');
  9. var $password = $('.form_password');
  10. $('.error, .info').remove();
  11. if ($login.val()) {
  12. if ($password.val()) {
  13.  
  14. $.ajax({
  15. type: "POST",
  16. url: "login.php",
  17. data: ({
  18. login: this.form_login, password: this.form_password
  19. }),
  20. dataType: "html",
  21.  
  22.  
  23. success: function(data){
  24.  
  25. $('<font size="2" class="info"></br>Trwa Logowanie...</br></br></font>')
  26. .css('color', 'green')
  27. .insertAfter($this);
  28. },
  29.  
  30. error: function(data){
  31.  
  32. $('<font size="2" class="info"></br>Nie można zalogować...</br></br></font>')
  33. .css('color', 'red')
  34. .insertAfter($this);
  35. }
  36.  
  37. });
  38.  
  39.  
  40.  
  41. } else {
  42. $('<font size="2" class="error"></br>Uzupełnij!</font>')
  43. .css('color', 'red')
  44. .insertAfter($password);
  45. }} else {
  46. $('<font size="2" class="error"></br>Uzupełnij!</font>')
  47. .css('color', 'red')
  48. .insertAfter($login);
  49. }
  50. return false;
  51.  
  52. });
  53. });
  54. </script>

  1. <form action='login.php' method='post' class='form_form'>
  2. Login :</br>
  3. <input type='text' name='login' class='form_login'/></br>
  4. Hasło :</br>
  5. <input type='password' name='password' class='form_password'/></br></br>
  6. <input type='submit' value='Zaloguj'/>
  7. </form>

  1. if($_POST['login'] == "Login" and $_POST['password'] == "Password"){
  2. echo "<head><meta http-equiv='refresh' content='1; url=http://www.survival-center.pl/?info=idid</head>";
  3. } else {
  4. echo "<head><meta http-equiv='refresh' content='1; url=http://www.survival-center.pl/?info=ididnt</head>";
  5. }

I teraz mam pytanie, czemu po uzupełnieniu formularza jako login = Login i password = Password skrypt mnie nie przekierowuje?
Jak wpisze obojętnie jakie dane, również nic się nie dzieje, mógłby mi ktoś wytłumaczyć mi mój błąd?

Pozdrawiam
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.