Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [MySQL][AJAX]wysyłanie formularza.
Johnas
post
Post #1





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


Witam próbuje wysłać formularz za pomocą jquery. mam taki kod:
[JAVASCRIPT] pobierz, plaintext
  1. sendreg(val1, val2)
  2. {
  3. data = "username=" + val1 + "&email=" + val2;
  4. $.ajax({
  5. type: "POST",
  6. data: data,
  7. url: "register.php",
  8. success: function(response){
  9. if($.trim(response) == "SUCCESS") {
  10. alert("Dane zostały dodanie do bazy.");
  11. }
  12. else {
  13. alert(response);
  14. }
  15. }
  16. });
  17. return false;
  18. };
[JAVASCRIPT] pobierz, plaintext


aczkolwiek w php zmienne $_POST['username] i $_POST['email'] są puste. W zmiennych javascript val1 i val2 są przypisane wartości ale w kodzie ich nie pokazuje. I znów pytanie co mam nie tak. Próbowałem kombinować ale już mnie głowa boli bo i tak nic nie wychodzi. Dziekuje za pomoc
Go to the top of the page
+Quote Post
prz3kus
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 30
Dołączył: 22.01.2007

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


Wysyłasz w linku jako GET a podajesz typ POST coś nie tak prawda? (IMG:style_emoticons/default/wink.gif)

Poza tym jest tysiąc linków z przykładami w sieci i dziesiątki na tym form (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Johnas
post
Post #3





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


A co zrobić aby było to metodą post? I aby były dwie zmienne np $_POST['login'] i $_POST['haslo']. Z ajaxem i javascript działam tylko po omacku.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tak jak robisz jest też ok, tylko skoro chcesz miec w post LOGIN to na grzyba nazywasz to USERNAME?(IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Johnas
post
Post #5





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


mam username tylko no login tak dla przykładu podałem... skoro jest ok to czemu nie działa (IMG:style_emoticons/default/sadsmiley02.gif)

?
Go to the top of the page
+Quote Post
kadlub
post
Post #6





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


Podczepię się pod temat
Ja też sie od nie dawna bawię ajaxem tylko że ja wysyłam dane z formularza za pomocą XMLHttpRequest Object.
I mam pytanie która metoda jest lepsza?(IMG:style_emoticons/default/questionmark.gif)

Ten post edytował kadlub 22.02.2012, 07:29:12
Go to the top of the page
+Quote Post
Johnas
post
Post #7





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


Dobrze to może powiem co zrobiłem i co sie dzieje.
plik js wygląda tak:

[JAVASCRIPT] pobierz, plaintext
  1. function czekamy(){
  2. var see = "";
  3. see += '<div class="ui-widget"><div class="ui-state-success ui-corner-all" style="margin-top: 20px; padding: 0 .7em;"><br><p>';
  4. see += '<span class="ui-icon ui-icon-check" style="float: left; margin-right: .3em;"></span>';
  5. see += '<strong></strong>Sprawdzanie formulaeza.<br>';
  6. see += '</p></div></div>';
  7. document.getElementById('myText').innerHTML = see;
  8. return sprawdz_formularz();
  9. }
  10.  
  11. function sprawdz_formularz()
  12. {
  13. // zmienna przechowujaca komunikaty bledow
  14. var bledy = '';
  15. var rbg = 'ogar';
  16. // przypisanie obiektu formularza do zmiennej
  17. var f = document.forms['register-form'];
  18. //sprawdzanie formatu adresu email
  19. var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  20. var AdresEmail = f.mail.value;
  21. var Wynik = AdresEmail.match(reg);
  22. // sprawdzenie czy login został wpisany
  23. if (f.login.value == '')
  24. {
  25. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać login!<br>';
  26. } else {
  27. $.ajax({
  28. type:"POST",
  29. url:"function/check_login.php",
  30. data:"username=" + f.login.value,
  31. success:function (msg) {
  32. if (msg == 'OK') {
  33. bledy += "";
  34. }
  35. else {
  36. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Login <b>'+f.login.value+'</b> jest w użyciu. Prosimy wymyśleć inny.<br>';
  37. }
  38. }
  39. });
  40. }
  41. // sprawdzenie czy hasło zostało wpisane
  42. if (f.pass.value == '')
  43. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać hasło!<br>';
  44. //sprawdzanie czy hasła są podobne
  45. if (f.pass.value != f.repass.value)
  46. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Hasła nie są identyczne!<br>';
  47. //sprawdzanie czy email został wpisany
  48. if (AdresEmail == '') {
  49. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać adres E-mail!<br>';
  50. } else if (Wynik == null) {
  51. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Niepoprawny format adresu E-mail!<br>';
  52. } else if (AdresEmail != f.remail.value)
  53. {
  54. //Sprawdzanie czy adresy email są ze sobą zgodne!
  55. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Podane adresy email nie są ze sobą zgodne!<br>';
  56. } else {
  57. $.ajax({
  58. type: "POST",
  59. url: "function/check_mail.php",
  60. data: "mail="+ AdresEmail,
  61. success: function (rquest) {
  62. if (rquest == 'OK') {
  63. bledy += "";
  64. }
  65. else {
  66. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>E-mail '+AdresEmail+' jest już uzywany. Jeżeli zapomnialeś hasła kliknij <a href="memory.php">Tutaj</a> aby wygenerować nowe hasło.<br>';
  67. }
  68. }
  69.  
  70. });
  71. }
  72. $.ajax({
  73. type: "POST",
  74. url: "function/rebug.php",
  75. data: "xavier="+ rbg,
  76. success: function(rubg){
  77. $("#mail").ajaxComplete(function(event3, request3){
  78. if(rubg == 'OK')
  79. {
  80. pokaz_bledy(bledy, f.login.value, f.pass.value, f.repass.value, AdresEmail, f.remail.value);
  81. }
  82. });
  83. }
  84. });
  85. return false;
  86. }
  87.  
  88.  
  89. function pokaz_bledy(bledy, lg, ps, ps2, eml, eml2)
  90. {
  91. var Sprawdz = bledy;
  92. if (Sprawdz == '')
  93. {
  94. WyslijFormularz(lg, ps, ps2, eml, eml2);
  95. } else {
  96. var tresc = '';
  97. tresc += '<div class="ui-widget"><div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"><br><p>';
  98. tresc += bledy;
  99. tresc += '<span id="mail"> </span></p></div></div>';
  100. document.getElementById('myText').innerHTML = tresc;
  101.  
  102. }
  103. return false;
  104. }
  105.  
  106. function WyslijFormularz(lg, ps, ps2, eml, eml2){
  107. data = "login=" + lg + "&amp;pass=" + ps + "&amp;test=okey";
  108. $.ajax({
  109. type: "POST",
  110. data: data,
  111. url: "function/register.php",
  112. success: function(response){
  113. if($.trim(response) == "OK") {
  114. alert("Dane zostały dodanie do bazy.");
  115. }
  116. else {
  117. alert(response);
  118. }
  119. }
  120.  
  121. });
  122. }
[JAVASCRIPT] pobierz, plaintext


plik do sprawdzania loginu:
  1. <?php
  2. include('../include/connect.php');
  3. if(isset ($_POST['username']))
  4. {
  5. $username = $_POST['username'];
  6. $username = mysql_real_escape_string ($username);
  7. $sql = mysql_query ("SELECT id FROM users WHERE login='$username'");
  8. if(mysql_num_rows ($sql))
  9. {
  10. echo '<span style="color: #cc0000;"><strong>'.$username.'</strong> jest już zajęty.</span>';
  11. }
  12. else
  13. {
  14. echo 'OK';
  15. }
  16. }
  17. ?>

oraz do maila
  1. <?php
  2. include('../include/connect.php');
  3. if(isset ($_POST['mail']))
  4. {
  5. $mail = $_POST['mail'];
  6. $mail = mysql_real_escape_string ($mail);
  7. $sql = mysql_query ("SELECT id FROM users WHERE email='$mail'");
  8. if(mysql_num_rows ($sql))
  9. {
  10. echo '<span style="color: #cc0000;"><strong>'.$mail.'</strong> jest już zajęty.</span>';
  11. }
  12. else
  13. {
  14. echo 'OK';
  15. }
  16. }
  17. ?>

plik rebug.php który służy do poczekania na tamte zmienne. Tak dałem bo tylko tak pokazywało. Jeżeli dodał bym tam samo pokazywanie to nic sie nie wykonuje, sam nie wiem czemu.
Teraz plik rejestracji. Ten plik jest w sumie do sprawdzenia czy zmienne są dodawane przez ajax:
  1. <?php
  2. include('../include/connect.php');
  3. $login = $_POST["login"];
  4. $pass = htmlspecialchars(stripslashes(strip_tags(trim($_POST["pass"]))), ENT_QUOTES);
  5. $test = $_POST['test']
  6.  
  7. echo "login = $login pass = $pass test = $test";
  8. ?>

moim zdaniem powinno sie wyświetlić echo z rejestracji, jednak wyświetla się puste okienko alert. hmm sam nie wiem.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Przy łączeniu danych powinno byc nie &amp; a poprostu &
2) Zainstaluj sobie firebug i zobacz co tak naprawdę ci tym ajaxem idzie
Go to the top of the page
+Quote Post
Johnas
post
Post #9





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


Edytowałem w pliku register.php
  1. $test = $_POST['test']


na

  1. $test = $_POST['test'];


Rezultat jest taki że pokazuje pierwszą zmienną czyli login.

nospor jesteś WIELKI. Już wszystko działa, tylko nie wiem czemu alert cały czas walczy ze mną (IMG:style_emoticons/default/sad.gif) kilikam ok a on ponownie się pojawia.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jaki alert?
Go to the top of the page
+Quote Post
Johnas
post
Post #11





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


w javia script
alert(response);

podejrzewam że to wina tego że gdzieś nie dałem returna. Nie wiem. Raczkuje dopiero w java script.
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A co dokładnie zawiera response?
Go to the top of the page
+Quote Post
Johnas
post
Post #13





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


odpowiedź z pliku rejestracji.
  1. echo "login = $login pass = $pass test = $test";
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to dlatego ci sie alert(response) wyswietla ciagle, bo on sie wyswietla gdy wynik jest różny od OK.
Go to the top of the page
+Quote Post
Johnas
post
Post #15





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


wiem, ale chodzi mi o to że jak klikne ok to on znów sie pojawia. Spamuje, a ja chcę aby tylko raz sie wyświetlił.
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jakie OK klikniesz?
Go to the top of the page
+Quote Post
Johnas
post
Post #17





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


o to okienko mi chodzi:
(IMG:http://iv.pl/images/98843640726093249583.png)
Go to the top of the page
+Quote Post
nospor
post
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ejjj... skąd znasz moje hasło!!!
(IMG:style_emoticons/default/wink.gif)

A już poważniej:
widać po ok znowu wysyłasz sprawdzanie forma. Kiedy normalnie wysyłasz by form spradzał rejestracje?
Go to the top of the page
+Quote Post
Johnas
post
Post #19





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


koledzy z anonymus mi pomogli (IMG:style_emoticons/default/smile.gif) ale ćśśś... dużo im zapłaciłem za nie (IMG:style_emoticons/default/wink.gif)

tak właśnie nie wiem dlaczego ponownie go wysyła.
Wysyłam formularz za pomocą:
  1. <a onClick="czekamy();" class="button-1">Rejestruj</a>


Ten post edytował Jonek_1993 22.02.2012, 14:07:44
Go to the top of the page
+Quote Post
nospor
post
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Masz to gdzieś online? Bo tak na sucho to cięzko zgadywać.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 23.08.2025 - 09:37