AJAXem wysyłam posta do kontrolera url: "register/checkLogin",
$(function() { $('#username').keyup(function() { $("#status").html('<img src="public/img/ajax-loader.gif"> Sprawdzanie dostępności.'); clearTimeout($.data(this, 'timer')); var wait = setTimeout(search, 600); $(this).data('timer', wait); }); function search() { var username = $("#username").val(); var msgbox = $("#status"); if(username.length > 4) { $("#status").html('Sprawdzanie dostępności.'); $.ajax({ type: "POST", url: "register/checkLogin", data: "username="+ username, success: function(msg){ $("#status").ajaxComplete(function(event, request){ if(msg == 'OK') { $("#username").removeClass("red"); $("#username").addClass("green"); msgbox.html('<img src="yes.png"> <font color="Green"> Dostępny</font>'); } else { $("#username").removeClass("green"); $("#username").addClass("red"); msgbox.html(msg); } }); } }); } else { $("#username").addClass("red"); $("#status").html('<font color="#cc0000">Za mało znaków</font>'); } return false; } });
W kontrolerze mam funkcję:
public function checkLogin() { 'login' => $_POST['username'] ); $this->model->checkLogin($data); }
W modelu:
public function checkLogin($data) { ':login' => $data['login'] )); if ($sth) { echo '<span style="color: #cc0000;"><strong>' . $data['login'] . '</strong> jest już zajęty.</span>'; } else { } } }
W modelu wywołując print_r($sth) daje taki efekt dla zajętego loginu: Array ( [userId] => 6 ). Dla wolnego nie zwraca nic.
Nie podoba mi się, że w modelu mam umieszczony ten fragment:
if ($sth) { echo '<span style="color: #cc0000;"><strong>' . $data['login'] . '</strong> jest już zajęty.</span>'; } else { }
Tylko nie wiem gdzie mam go wrzucić i jak przekazać odpowiednio? Do widoku? Do kontrolera? Czy może, wcale to nie jest złe i powinno być to w modelu?
W widoku mam jedynie
Gdyby mógł ktoś rzucić okiem i fachowo mnie oświecić jak to powinno się zrobić należycie, byłbym niezmiernie wdzięczny.