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
+
0
-

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
        });
    }
vvoody
Člen | 910
+
0
-

A akú url by si tam chcel mať?

PirateJack
Člen | 9
+
0
-

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… :)

vitush93
Člen | 33
+
0
-

me pomohlo zbavit se escapovani toto:

..{!$presenter->link('checkEmail!')}..

predpokladam, ze ten js kod je primo v latte

vvoody
Člen | 910
+
0
-

Mne ta url pripadá úplne v poriadku, escapovanie je správne. Skúšal si ten ajax request spustiť?

dnd
Člen | 16
+
0
-

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}
Mesiah
Člen | 240
+
0
-

url: '{link checkCode!}' problém je v apostrofech. Smaž je, to by mohlo pomoct… :)

Editoval Mesiah (20. 9. 2013 22:35)

Zerig
Člen | 70
+
0
-

Mesiah napsal(a):

url: '{link checkCode!}' problém je v apostrofech. Smaž je, to by mohlo pomoct… :)

Mám podobný problém pokud do url zapíšu: ‚/zkouska?do=changeFoo‘ vše je OK
ale {link changeFoo!} s apostrofy to hází chybu bez aposrofů jquery nic neudělá.