Prehľadávanie Username v Nette DB cez Javascript

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
SontoEremo
Člen | 341
+
0
-

Zdravím,
Takže som prešiel pomerne dosť tém na tomto fóre ale ani jedno mi nedopomohlo k úspešnému výsledku.
Mám kód js na zistenie dostupného užívateľského mena

$('#username').keyup(function(){ // Keyup function for check the user action in input
        var Username = $(this).val(); // Get the username textbox using $(this) or you can use directly $('#username')
        var UsernameAvailResult = $('#username_avail_result'); // Get the ID of the result where we gonna display the results
        if(Username.length > 3) { // check if greater than 2 (minimum 3)
            UsernameAvailResult.html('Prehľadávam ...').css("color", "#a7a7a7"); // Preloader, use can use loading animation here
            var UrlToPass = 'action=username_availability&username='+Username;
            $.ajax({ // Send the username val to another checker.php using Ajax in POST menthod
            type : 'POST',
            data : UrlToPass,
            url  : 'checker.php',
            success: function(responseText){ // Get the result and asign to each cases
                if(responseText == 0){
                    UsernameAvailResult.html('<span class="available">Dostupné ...</span>');
                }
                else if(responseText > 0){
                    UsernameAvailResult.html('<span class="unavailable">Nedostupné ...</span>');
                }
            }
            });
        } else {
            UsernameAvailResult.html('Zadajte min. 4 znaky');
        }

        if(Username.length == 0) {
            UsernameAvailResult.html('');
        }
    });

Ako mám dostať prehľadávanie Databázy konkrétne užívateľského mena keď je v JS definované
url : ‚checker.php‘,

Samozrejme viem, že tam nemôžem dosadiť npr. App/model/UserManager.php atď…
Fakt ma nenapadá ako spojiť JS s Nette DB tak aby to bolo samozrejme bezpečné, v Js som začiatočník a ešte som s takto s Nette+Js nepracoval.

Všetkým za rady a pomoc vopred ďakujem.

Editoval SontoEremo (24. 3. 2015 13:05)

Pavel Kravčík
Člen | 1196
+
0
-

Já použil něco podobného. Je to jednoduché, přehledné a funkční. Ale asi to nebude fungovat s live validací (která je stejně ošklivá :)).

$form->addText('nick', 'Přezdívka')
	->addRule(Form::FILLED)
	->addRule(callback($this, 'isUsernameAvailable'), 'Toto uživatelské jméno je již registrováno');
David Matějka
Moderator | 6445
+
+1
-

pro live validaci doporucuju zkouknout hrachovu prednasku