![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
od razu zacznę że nie mam kompletnego pojęcia o AJAX'ie ![]() -------------------- GG: 564555
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
http://api.jquery.com/jQuery.post/
Dokładnie to przypatrz się: Example: Posts to the test.php page and gets contents which has been returned in json format Kod <?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?> Kod $.post("test.php", { "func": "getNameAndTime" },
function(data){ console.log(data.name); // John console.log(data.time); // 2pm }, "json"); Ten post edytował jaslanin 13.01.2012, 20:23:28 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
W sumie to niby coś znalazłem
Kod $(document).ready(function(){ $("#email").change(function(){ var email = $("#email").val(); if(email.length > 3){ $("#status").html(\'Trwa sprawdzanie...\'); $.ajax({ type: "POST", url: "email.php", data: "email="+ email, success: function(server_response){ $("#status").ajaxComplete(function(event, request){ if(server_response == \'0\'){ $("#status").html(\'<font color="Green">Available</font>\'); CheckEmail = true; } else if(server_response == \'1\'){ $("#status").html(\'<font color="red">Not Available</font>\'); CheckEmail = false; } }); } }); } else { $("#status").html(\'<font color="#cc0000">Username too short</font>\'); CheckEmail = false; } return false; }); Ale nie wiem dokładnie jakim POSTem te dane są przesyłane żeby zrobić if(isset($_POST['co tu ?'])){} -------------------- GG: 564555
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Sam zapisałeś co wysyłasz:
Kod data: "email="+ email, więc tam gdzie masz co tu? powinno być email -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Doszedłem do tego
![]() Kod <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> <script type='text/javascript'> var CheckEmail; function check(form){ var message =""; if(form.email.value == ""){ message +="Proszę wpisać adres e-mail !\n"; } if(message != ""){ alert(message); return false; } if(!CheckEmail){ alert('Podany adres e-mail już istnieje w naszej bazie !'); return false; } } $(function(){ $("#email").change(function(){ var email = $("#email").val(); if(email.length > 3){ $.ajax({ type: "POST", url: "email.php", data: "check_email="+ email, success: function(server_response){ $("#status").ajaxComplete(function(event, request){ if(server_response == '0'){ CheckEmail = true; } else if(server_response == '1'){ CheckEmail = false; } }); } }); } else { CheckEmail = false; } return false; }) }); </script> Gdzie są błędy ![]() -------------------- GG: 564555
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A php zwraca ci poprawny wynik? Używaj firebuga do sprawdzania błędów js.
Ten post edytował potreb 13.01.2012, 22:13:40 -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jak to zrobić aby nie musieć tworzyć osobnego pliku .php tylko np. wstawić kod odpowiedzialny za sprawdzanie czy e-mail jest przed wyświetlenie formularza
![]() ![]() Co PHP powinien zwracać żeby zadziałał ten JS ? -------------------- GG: 564555
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Jak to zrobić aby nie musieć tworzyć osobnego pliku .php tylko np. wstawić kod odpowiedzialny za sprawdzanie czy e-mail jest przed wyświetlenie formularza Co php powinien zwracać Surową odpowiedź, bez żadnych widoków. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
czyli w tym wypadku 1 bądź 0
![]() EDIT: OKI ![]() ![]() ![]() -------------------- GG: 564555
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A o czym napisałem?
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ok, rozumiem w takim razie ze nie ma takiej opcji ... Mam jeszcze jedno pytanko
![]() ![]() -------------------- GG: 564555
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ni da się , twój plik zwraca sporą część treści + nagłówki, które AJAX potraktuje jako string i uzna że jest błąd, dlatego musisz to mieć w osobnym pliku, najlepiej takim który jest przystosowany do JSON'a.
Oprócz maila masz pewnie jeszcze jakieś inne dane np Login czy nazwę, więc sprawdź czy dana nazwa jest powiązana z tym mailem, jeżeli tak to przepuść. Generuje to oczywiście możliwość że powstaną dwie identyczne nazwy z identycznym mailem. Więc jeżeli mail i nazwa się zgadzają to po porostu ich nie edytuj. Ten post edytował Ilware 13.01.2012, 23:38:16 -------------------- Jeżeli pomogłem kliknij "Pomógł" :)
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzając czy Mail jest już w bazie wysyłam id usera i mail z formualarza, tak wygląda kod:
Ogólnie wydaje mi się że muszę w tym JS gdzie teraz jest $("#email").change(function(){ zmienić to change na coś innego, tylko za bardzo nie wiem na co ... -------------------- GG: 564555
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
według kodu js który dałeś wcześniej nie przekazujesz id więc nie wiem czemu się do niego odwołujesz, ale w sumie przez przypadek w dobrym kierunku idziesz.
a następnie sprawdź czy id jakie dostałeś z bazy danych nie jest równe temu które wysłałeś AJAX'em, jeżeli tak to przepuść jeżeli nie to zablokuj ![]() -------------------- Jeżeli pomogłem kliknij "Pomógł" :)
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mój kod JS teraz wygląda tak:
Kod <script type='text/javascript'> var CheckEmail = ""; $(function(){ $("#email").change(function(){ var email = $("#email").val(); var id = "'.$_GET['id'].'"; if(email.length > 3){ $.ajax({ type: "POST", url: "ajax.php", data: {check_email: email, id: id}, success: function(result){ if(result == 0){ CheckEmail = true; } else if(result == 1){ CheckEmail = false; } } }); } else { CheckEmail = false; } return false; }) }); function check(form){ var message = ""; if(form.email.value == ""){ message +="Proszę wpisać adres e-mail !\n"; } if(message != ""){ alert(message); return false; } if(!CheckEmail){ alert('Podany adres e-mail już istnieje w naszej bazie !'); return false; } } </script> I teraz najlepszą opcją było by aby ten e-mail sprawdzał się w momencie kliknięcia na submit, bo teraz sprawdza się po każdej zmianie inputa...tylko jak zmienię tam z $("#email").change(function(){ na $("#submit").click(function(){ to formularz się nie wysyła ... Ten post edytował Elber 13.01.2012, 23:56:01 -------------------- GG: 564555
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
w form dodaj wywołanie onSubmit="return twoja_funkcja_sprawdzajaca()" jeżeli zwrócisz w niej true to formularz się wyśle jak false to zablokuje wysyłkę formularza
-------------------- Jeżeli pomogłem kliknij "Pomógł" :)
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tam mam już onsubmit="return check(this); do sprawdzenia czy jest coś wpisane w inputy
![]() -------------------- GG: 564555
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
to do tej funkcji sprawdzającej dopisz AJAX'a i masz problem rozwiązany .
![]() -------------------- Jeżeli pomogłem kliknij "Pomógł" :)
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 381 Pomógł: 12 Dołączył: 9.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Na to nie wpadłem, tylko nie wiem czy dobrze je połączyłem
Kod <script type=\'text/javascript\'>
function check(form){ var message = ""; if(form.email.value == ""){ message +="Proszę wpisać adres e-mail !\n"; } if(form.name.value == ""){ message +="Proszę wpisać nazwę firmy !\n"; } if(form.address.value == ""){ message +="Proszę wpisać adres firmy !\n"; } if(form.postcode.value == ""){ message +="Proszę wpisać kod pocztowy !\n"; } if(form.city.value == ""){ message +="Proszę wpisać nazwę miasta !\n"; } if(form.nip.value == ""){ message +="Proszę wpisać NIP !\n"; } if(message != ""){ alert(message); return false; } var CheckEmail = ""; var email = $("#email").val(); var p_id = "'.$_GET['id'].'"; $.ajax({ type: "POST", url: "live_query.html", data: {check_email: email, p_id: id}, success: function(result){ if(result == 0){ CheckEmail = true; } else if(result == 1){ CheckEmail = false; } } }); if(!CheckEmail){ alert(\'Podany adres e-mail już istnieje w naszej bazie !\'); return false; } } </script> -------------------- GG: 564555
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kod wygląda okej, ale jedna rzecz rzuciła mi się w oczy $_GET['id'], jeżeli pobierasz id z urla to kod będzie bardzo podatny na ataki, zwłaszcza że później przez to id validujesz coś. Spróbuj je jakoś zakodować (choćby base64 , zawsze coś), a najlepiej jak byś przekazywał je w post a nie w get
![]() p.s. masz błąd w nazwie zmiennych
no i strona powinna być skryptem php a masz html
Ten post edytował Ilware 14.01.2012, 00:37:14 -------------------- Jeżeli pomogłem kliknij "Pomógł" :)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.05.2025 - 21:10 |