Eredmény: 1 - 10 (10) összesen

Téma: ajax változó átadása javascriptnek

  1. #1
    Új tag
    Csatlakozott
    13-09-23
    Hozzászólás
    8
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás ajax változó átadása javascriptnek

    Heló,
    Lenne egy segítségkérésem. Készítek egy főként jquery vezérelt formot. És abban van egy rész, amiben ellenőrzöm ha a next gombra kattintok, hogy a megadott email cím helyes formátumú-e, és az adatbázisban fellelhető-e. Ha valami hibás, akkor nem enged tovább a jelentkezésben.
    Nos a JS-hez nem igazán értek, így elakadtam. Azt tudom, hogy egy ellenőrző függvénybe kellene beilleszteni ezt az emailes függvényt, de nem tudom felépíteni azt a függvényt. Itt van pár kódom:
    Ez a visszaellenőrző kód:
    (itt az email is eggy változó, amit a formból kapok)
    Kód:
    else if(checkValue(email)==1){       
                            alert(checkValue(email));                
                            isValid = false;
                            $('#msg_email').html('Foglalt email cím').show();       
                     }
    Ez itt az email ellenőrző függvény:
    Kód:
    function checkValue(id) {
              var datastring = 'email='+ email;
              var my_temp_var;
                    $.ajax({
                            type: "POST", // type
                            url: "pages/check_email.php", // request file the 'check_email.php'
                            async: false,
                            data: datastring, // post the data
                            success: function(responseText) { // get the response
                                    
                                     my_temp_var = responseText;
                                    
                            } // end success
                    }); // ajax end
    return my_temp_var;
    }
    Remélem érthető, és tudtok segíteni.
    Köszönöm,
    Levente



  2. #2
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    Nem teljesen ertheto. De ha az ajax keresre erkezo valtozobol szeretnel valtozot, akkor hasznalj json-t.



  3. #3
    Új tag
    Csatlakozott
    13-09-23
    Hozzászólás
    8
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    Elhiszem... Mint írtam, csak ismerkedem ezzel a JS-el. Hogyan használjam ebben a programban a json-t?



  4. #4
    Szerkesztő djjean logója
    Csatlakozott
    11-10-15
    Hely
    Baja
    Hozzászólás
    211
    Begyűjtött 48 köszönetet
    44 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    check_email.php-be, ami ki lesz íratva, rakd egy json_encode metódusba. Tehát így nézzen ki:

    PHP kód:
    echo json_encode($valtozo); 




  5. #5
    Tag kléni logója
    Csatlakozott
    13-05-27
    Hely
    Nyíregyháza
    Hozzászólás
    71
    Begyűjtött 10 köszönetet
    10 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    A checkValue jelenleg ezt csinálja:
    1. Létrehozza a my_temp_var változót érték nélkül.
    2. Meghívja a $.ajax függvényt, ami beállítja, hogy ha megérkezik a válasz, lefusson a success.
    3. Visszaadja a my_temp_var változót. Mivel még nem érkezett válasz a szervertől, így az értéke nem lett módosítva, a változó továbbra is üres.

    Elsőnek küld el az adatokat, várd meg, amíg visszaérkezik a válasz, és csak azután irasd ki, hogy jó vagy rossz az e-mail cím.
    Én így építek fel egy form ellenőrzést:
    Kód:
    var hiba mutat = function 
    	$("#hibadoboz").html(szöveg).show()
    if (Ki van-e töltve a mező, formailag helyes-e az e-mail (regex), és a form többi elemének ellenőrzése)
    	hiba mutat( ... );
    else A JS nem talált hibát, jöhet a szerver oldali ellenőrzés
    {
    	$.post("ellenörzés.php", $("form").serialize(), function(data)
    	{
    		A data értéke most "Foglalt email cím"
    		if (data != "1")
    			hiba mutat(data);
    	});
    }

    A JSON használata röviden a következő:
    Szerver oldali:
    Kód:
    header("Content-Type: application/json");
    echo json_encode(array("egy" => 1, "hat" => 6))
    A jquery alapból feldolgozva adja vissza az adatokat, hogyha a Content Type "application/json"-ra van állítva. Ez után a JS-ből el tudod érni a "6"-ot a data.hat meghívásával. Ugyan úgy működik, mint egy rendes JS objektum.
    A JSON-nak csak akkor van értelme, ha egyszerre több adatot is akarsz küldeni. Pl. az összes hibát, amit a szerver oldalon találtál, belerakod egy tömbbe, és a JS ezeket sorba kilistázza. Az első példámban nem így csináltam.


    Utoljára módosítva: kléni által : 2013-10-03 11:15

  6. #6
    Új tag
    Csatlakozott
    13-09-23
    Hozzászólás
    8
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    Nem engedi a spam védelem, hogy beillesszem a teljes kódomat. Hogy tudnám megmutatni, hogy miként is néz ki?



  7. #7
    Tag kléni logója
    Csatlakozott
    13-05-27
    Hely
    Nyíregyháza
    Hozzászólás
    71
    Begyűjtött 10 köszönetet
    10 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    Töltsd fel valami külső oldalra. Sok szöveges megjelenítő létezik.



  8. #8
    Új tag
    Csatlakozott
    13-09-23
    Hozzászólás
    8
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    Küldtem egy látogatóüzenetet neked, amiben feltöltöttem a kódomat. Sajnos ide nem tudok semmi külső tartalmat felrakni még.
    Üdv



  9. #9
    Tag kléni logója
    Csatlakozott
    13-05-27
    Hely
    Nyíregyháza
    Hozzászólás
    71
    Begyűjtött 10 köszönetet
    10 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    A http-t lecserélve hxxp-re tudsz linket mutatni, amíg nincs elég üzeneted a fórumon.
    Azt egész kódodat nem írnám át. A felépítés menetét bemutattam, az alapján próbálgasd megoldani. Gyakorlat teszi a mestert. Pár észrevételem azonban van:
    • Felesleges minden alkalommal meghívni a smartWizard-ot, és az isStepValid változót módosítani. Kevesebbet kell írnod, átláthatóbb is lesz a kód, ha csak 1 változót módosítasz, és a végén megvizsgálod azt, a szerint írod ki a hibát. Készíts egy tömböt, amelyikhez hozzáadod a hibás lépések sorszámát, majd a végén, ha nem üres a tömb, végigmégy rajta, és beállítod mindegyik lépéshez a hiba kiírását.
    • Mi haszna van ennyi funkciónak? A validateAllSteps, és a validateSteps függvényekben körülbelül ugyan azt írtad le kétszer. Próbáld meg úgy megoldani, hogy ne kelljen ugyan azt a kódot leírni.
    • A checkValue függvényen semmit nem változtattál. Nem csak azt mondtam, hogy vizsgáld meg a visszakapott értéket, és ha 1, akkor állítsd a my_temp_var -t is 1-re. A checkValue, és az ajaxos success továbbra is külön időpontban fut le, a checkValue már visszaadta az értéket, amikor te a my_temp_var -t 1-re állítod a success-nél. Nézd meg jobban a fenti kódot, amit írtam! Nem az ellenőrző függvényből hívtam meg az ajaxos dolgokat, hanem fordítva, miután az ajax lefutott, meghívtam a hiba kiírásával foglalkozó függvényt.
    • A jel_veznev.length értéke nem lehet 0-nál kisebb. Egy sima !un elég.
    • Felesleges ekkora regex-et használni. E-mail cím ellenörzésére elég ennyi: [w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}



    Utoljára módosítva: kléni által : 2013-10-03 12:53

  10. #10
    Új tag
    Csatlakozott
    13-09-23
    Hozzászólás
    8
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: ajax változó átadása javascriptnek

    Heló. Köszönöm a segítséget, a sorrendek megváltoztatása sokat segített. Akkor még egy kicsit tisztítok a kódokon is.
    Üdv



Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •