Ajax Jquery – zpracovani POST pozadavku
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Piticu
- Člen | 93
Pouzil jste prosim nekdo ajax Jquery? nevim jak zkontrolovat/zpracovat data v Presenteru. Mam nasledujici kod:
$('#sendChanges').click(function(e) {
var navValues = document.getElementById("sortable").getElementsByTagName("li");
e.preventDefault();
$.ajax({
type: "POST",
url: {link menuOrder!},
dataType: "text",
async:false,
data: $(navValues).serializeArray(),
contentType: "application/json; charset=utf-8",
success: function (data) {
alert("ok");
},
error: function (textStatus, errorThrown) {
alert('no');
}
});
});
Vyskoci mi alert = ok. Pak mam presenter:
public function handleMenuOrder(){
echo "Something";
}
Ktery ale nic nevypise. Jak mam ted zkontrolovat zda je vse v poradku nebo spis JE VSECHNO V PORADKU?
- CZechBoY
- Člen | 3608
Vezmu-li tvůj příklad
$('#sendChanges').click(function(e) {
var $navValues = $("#sortable").find("li");
e.preventDefault();
$.ajax({
type: "POST",
url: {link menuOrder!},
data: $navValues.serializeArray(),
success: function (response) {
if (response.hasOwnProperty('success')) {
if (response.success) {
alert("OK");
} else {
alert("Error");
}
} else {
alert("Error: no success key");
}
},
error: function (textStatus, errorThrown) {
alert("Error: " + textStatus);
}
});
});
class MenuOrderPresenter extends UI\Presenter
{
public function handleMenuOrder()
{
try {
$this->model->orderMenu();
$success = true;
} catch (SomeException $exception) {
$success = false;
}
$this->sendJson((object)[
'success' => $success,
]);
}
}