Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Przesyłanie zmiennych z formularza przez js do php
renault12
post
Post #1





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z przesylaniem danych z formularza do php metoda js. Chce przeslac login i email dynamicznie do php, mam pewna funkcje w js ktora przy jednym parametrze chodzi dobrze ale ja wlasnie chce przeslac i login i email przez ta funkcje i tu robi sie problem. Wie ktos moze co moze byc zle? Takim kodem ktorego zaraz przedstawie sprawdza mi tylko login a chcialbym zeby sprawdzilo tez poprawnosc email.


[JAVASCRIPT] pobierz, plaintext
  1. var myAjax6 = new Ajax.Request('reg.php', {
  2. method: 'post',
  3. parametrs: "email=" + email,
  4. onSuccess: function(showResponse){
  5. errorResults.innerHTML = showResponse.responseText;
  6. }
  7. });
  8. var myAjax5 = new Ajax.Request('reg.php', {
  9. method: 'post',
  10. parameters: "login=" + login,
  11. onSuccess: function(showResponse){
  12. errorResults.innerHTML = showResponse.responseText;
  13. }
  14. });
[JAVASCRIPT] pobierz, plaintext


  1. $login = $_POST['login'];
  2. $email = $_POST['email'];
  3. $znaki = strlen($login);
  4. $zap = mysql_query("SELECT login FROM users WHERE login = '$login'") or die (mysql_error());
  5. $ile = mysql_num_rows($zap);
  6. if ($login != '') {
  7. if ($znaki >= 5 && $znaki <= 16) {
  8. if ($ile>0)
  9. {
  10. echo $email . '<font color="red">Błąd w formularzu.</font>';
  11. }
  12. } else {
  13. if ($znaki < 5)
  14. {
  15. echo 'Błąd w formularzu.';
  16. } else {
  17. if ($znaki > 16) {
  18. echo 'Błąd w formularzu.';
  19. }
  20. }
  21. }
  22.  
  23. if ($email != '')
  24. {
  25. if(strstr($email,'@'))
  26. {
  27. echo '';
  28. } else {
  29. if (strlen($email) < 6) {
  30. echo 'Niepoprawny adres email';
  31. } else {
  32. echo 'Niepoprawny adres email';
  33. }
  34. }
  35. }
  36. }


Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


Straszna kaszana w tym twoim źródle. Nie wiem czy dobrze zrozumiałem ale chcesz wysłać login i email do serwera, sprawdzić je i odesłać odpowiedź za pomocą Ajaxa? Jeśli tak to za pomocą jQuery i kawałka kodu można zrobić to tak:
Przykładowy HTML:
  1. <form action='js.php' method='post' id='myForm'>
  2. <input type='text' name='form[login]' id='login' />
  3. <input type='text' name='form[email]' id='email' />
  4.  
  5. <input type='submit' >Wyślij</input>
  6. </form>

Kierunek JS -> PHP metoda POST, dane zwracamy za pomocą JSON :
  1. $form = $_GET['form'];
  2.  
  3. if (strlen($form['login'])>=6 && strlen($form['login'])<16 && filter_var($form['email'], FILTER_VALIDATE_EMAIL))
  4. $response['status'] = true;
  5. $reponse['message'] = 'Przyjęto dane';
  6. } else {
  7. $response['status'] = false;
  8. $reponse['message'] = 'Dane w formularzu są błędne, spadaj';
  9. }
  10.  
  11. echo json_encode($response);

I kod JS:
[JAVASCRIPT] pobierz, plaintext
  1. $('#myForm').submit(function() {
  2. data = $(this).serialize(); // zamieniamy dane z formularza w string
  3. $.post($(this).attr('action'),data,function(result) {
  4. // dane otrzymujemy w postaci obiektu result (zwykły obiekt JS, pola takie jak w naszym arrayu php
  5. typeClass = (result.status) ? 'good':'error'; //klasy stylujące w zależności od wyniku
  6. msgbox = $("<div style='position:absolute;top:30%;left:45%; z-index:1000' />");
  7. msgbox.addClass(typeClass);
  8. msgbox.text(result.message); //wstawiamy komunikat
  9. $('body').append(msgbox); //pokazujemy diva z komunikatem
  10. },'json'); //json oznacza jak jQuery ma traktować odpowiedź z serwera
  11. });
[JAVASCRIPT] pobierz, plaintext


Oczywiście div msgbox jest niedopracowany (nie można go zamknąć) ale to już twoja działka. Jeśli nie przeszkadza ci nadmiar kodu JS to możesz zainteresować się jQuery UI.

Ten post edytował everth 25.07.2010, 16:32:18
Go to the top of the page
+Quote Post

Posty w temacie
- renault12   [JavaScript] Przesyłanie zmiennych z formularza przez js do php   25.07.2010, 10:41:39
- - thomson89   Nie męcz się w JS. Przestaw się na jQuery. Naprawd...   25.07.2010, 10:59:28
- - renault12   A w jaki sposob moge przeslac zmienna z php do js ...   25.07.2010, 14:42:00
- - thomson89   Na powyższym przykładzie, wystarczy że dasz w skry...   25.07.2010, 15:05:43
- - renault12   No a jesli juz mam jakis tekst w echo i jak dodam ...   25.07.2010, 15:44:50
- - thomson89   Zobacz tą funkcję.   25.07.2010, 15:58:43
- - everth   Straszna kaszana w tym twoim źródle. Nie wiem czy ...   25.07.2010, 16:22:48
- - renault12   No mniej więcej mi o coś takiego chodziło, później...   25.07.2010, 17:04:26
- - everth   Jeśli 'result' jest wynikiem funkcji echo ...   25.07.2010, 17:24:45
- - renault12   Coś nie działa :/ Nie wiem gdzie jest błąd, zobacz...   25.07.2010, 18:13:57
- - everth   Jak masz tak pisać to lepiej nie pisz w ogóle. To ...   25.07.2010, 18:59:51
- - renault12   nooo i elegancko smigaaa, dzieki. A to te txt2 to ...   25.07.2010, 19:15:53
- - everth   Jak zaczniesz pracować z kodem stworzonym przez in...   25.07.2010, 19:28:30
- - renault12   Nie chce zakladac nowego tematu wiec pisze tutaj b...   27.07.2010, 11:43:39
- - everth   Sprawdź zmienną result - czasem przeglądarki (zwła...   27.07.2010, 12:41:46
- - renault12   I przed warunkiem i w warunku nic nie zwraca w ale...   27.07.2010, 13:08:42
- - everth   Rozbuduj warunek [JAVASCRIPT] pobierz, plaintext ...   27.07.2010, 14:03:51
- - renault12   Też nic z tego :/   27.07.2010, 20:44:35
- - everth   To wrzuć to co podałem w nawiasach jako warunek w ...   28.07.2010, 09:56:09
- - renault12   false   28.07.2010, 12:48:02
- - everth   No to masz odpowiedź: jeśli warunek nie jest spełn...   28.07.2010, 13:01:59
- - renault12   A ja myśle że to nie w tym jest problem, problem j...   28.07.2010, 16:43:32
- - everth   Taki pomysł. Niestety nie potrafię zrozumieć co w ...   28.07.2010, 16:45:36
- - renault12   zmieniłem tylko warunek na taki [JAVASCRIPT] pobie...   28.07.2010, 17:35:20


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 15:31