Zmienne zewnętrzne w Jquery


(northwest) #1

Witam serdecznie,

mam taki kod:

var tekst = '';

var random = Math.round(Math.random() * 99999);

$.post("sprawdzlogin.php", {name: $(form).find('input[name="login"]').val(), city: random}, function(data) {

            var obj = jQuery.parseJSON(data);

            tekst = tekst + obj.two;

            return true;

        })

        alert(tekst);

chciałbym żeby skrypt pobrał wartość z inputa "login", wysłał ją POSTem do skryptu sprawdzlogin.php i jeśli jest zajęty,

to żeby pobrał wartość z pliku i ja wyświetlił w alercie.... problem w tym że skrypt zawsze zwraca wartość pustą.... jakby zmienna z jquery

nie wychodziła do alerta :frowning:

Macie może pomysł jak to poprawić?

Z góry dziękuję za pomoc,

Northwest


(Drobok) #2

Nie wiem po co ci tam parseJSON. Post ma argument datatype, którego powinieneś użyć.

var tekst = '';

var random = Math.round(Math.random() * 99999);

$.post("sprawdzlogin.php", {name: $(form).find('input[name="login"]').val(), city: random}, function(data) {

    tekst = data.two;

}, "json");

alert(tekst);

Nie rozumiem również dlaczego alert jest po samym post. Oraz po co ci ten return skoro tam nic więcej nie ma. Weź też pod uwagę, że php musi ci zwracać ciąg json (i tylko jego). Bo wtedy wszystko nie będzie działać jak powinno.


(northwest) #3

mam taki kod:

function sprawdz1(form)

    {

        var tekst = '';

        if ($(form).find('input[name="email"]').val() == "") {

            tekst = tekst + "- email
";

        }

        if ($(form).find('input[name="pass"]').val() == "") {

            tekst = tekst + "- hasło 
";

        }

        if ($(form).find('input[name="pass2"]').val() == "") {

            tekst = tekst + "- powtórne hasło 
";

        }

        if ($(form).find('textarea[name="login"]').val() == "") {

            tekst = tekst + "- login 
";

        }

        if ($(form).find('input[name="pass"]').val() != $(form).find('input[name="pass2"]').val()) {

            tekst = tekst + "- pole hasło różni się od pola z powtórzonym hasłem 
";

        }

        if ($(form).find('input[name="email"]').val() != "") {

            if (email_validate($(form).find('input[name="email"]').val()) == false) {

                tekst += "- błędny format adresu email 
"

                brakDanych = true;

            }

        }

        var random = Math.round(Math.random() * 99999);

        $.post("sprawdzlogin.php", {name: $(form).find('input[name="email"]').val(), city: random}, function(data) {

            var obj = jQuery.parseJSON(data);

            tekst = tekst + obj.two;

            return true;

        })

        alert(tekst);

        if (tekst != "") {

            alert ("Proszę uzupełnić następujące pola:\n"+tekst);

            return false;

        } else {

            $(form).submit();

        }

        return false;

    }

to sprawdza czy dane pola są uzupełnione i w zależności od tego wyświetla alerta.... ten kawałek kodu z POSTem sprawdzam czy wpisany login nie jest w życiu... problem tylko w tym, że nie wychodzą informacje pobrane z pliku php do tego alerta (jeśli login jest zajęty) :frowning: jakby zmienna nie zapisywała się ... jak przeniosę alerta w tą funkcję jquery - to wyświetla alerta....


(Drobok) #4

Jak ma coś wyświetlać jak na sile pchasz tam tego return.


(northwest) #5

jak zrobię tak:

$.post("sprawdzlogin.php", {name: $(form).find('input[name="email"]').val(), city: random}, function(data) {

            var obj = jQuery.parseJSON(data);

            tekst = tekst + obj.two;

        })

to też nie działa :frowning:


(Drobok) #6

Sprawdzałeś konsolę js ? Pewnie wywala ci brak średnika po post.