Generování url pro jquery ajax
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- PirateJack
- Člen | 9
Ahoj,
jam můžu prosím vypsat url v javascriptu?
function checkEmail(email) {
$.ajax({
type: 'get',
url: {link checkEmail!}, // jak vygenerovat URL? dostávám "url: "\/LiveAndImpress\/www\/?do=checkEmail","
data: {
email = email
}
contentType: 'application/json',
dataType: 'json',
context: this,
success: function (d) {
$('#email-verify').val(d.message);
},
error: function () {
$('#email-verify').val(d.message);
}
}).always(function () {
// always
});
}
- PirateJack
- Člen | 9
Hele uplně ideálně bych tam chtěl mít akci presenteru, která mi vrátí
json.
Sekl jsem se na tom, jak vygenerovat url, kam budu posílat dotazy… :)
- dnd
- Člen | 16
mám právě teď podobný, možná stejný problém
<script>
$('#{!$control["deactivateForm"]['code']->htmlId}').on('change', function() {
$.nette.ajax({
type: 'GET',
url: '{link checkCode!}', // ve zdrojovém kodu vidím: url: '"\/admin\/partner\/deactivate?do=checkCode"',
// to bych i bral, jenže při uskutečnění odeslání požadavku se volá tato adresa (používám firebug, abych viděl):
// http://domena.cz/admin/partner/%22/admin/partner/deactivate?do=checkCode%22&value=nejakykod
data: {
'value': $(this).val()
}
});
});
</script>
a na tuto špatnou adresu mi firebug hází 500:internal server error a při kliku na link laděnka samozřejmě povídá No route for HTTP request.
Funkční řešení, které je tuším v manuálu prvních kroků, existuje, mě ale zajímá, proč nefunguje, či jak ošetřit výše uvedený zápis a vyhnout se funkčnímu, ale širšímu zápisu (i když nakonec asi správnému), viz níže:
<script>
{include #jsCallback, link => checkCode}
</script>
{define #jsCallback}
$('#{!$control["deactivateForm"]['code']->htmlId}').on('change', function() {
$.nette.ajax({
type: 'GET',
url: '{link {$link}!}',
data: {
'value': $(this).val(),
}
});
});
{/define}