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
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
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');