nette.ajax vrací null u id

jedlicka
Člen | 61
+
0
-

Ahoj,

mám latte šabloně na tlačítku volání ajaxu.

Když ajax napíšu takto:

<?php
$('#addContractBtn').on('click', function () {
	var customerID = $("#customerID").val();
	$.nette.ajax({
		url: {link Record:addContract},
		type: 'GET',
		data: {
			id: customerID
		}
	})
});
?>

tak v presenteru pomocí $id = $this->getParameter('id'); je $id null. Pokud id přejmenuji na cokoliv jiného, např. customerID, tak vrátí správnou hodnotu.

Proč to pro id vrací null?

Když ajax napíšu takto:

<?php
$('#addContractBtn').on('click', function () {
	var customerID = $("#customerID").val();
	$.nette.ajax({
		url: {link Record:addContract,id=>customerID},
		type: 'GET'
	})
});
?>

tak v presenteru pomocí $id = $this->getParameter('id'); je $id string „customerID“ nikoliv hodnota proměnné customerID.

Kde dělám v obou případech chybu?

Díky moc.

Martin

CZechBoY
Člen | 3608
+
0
-

ad 1) Protože routa s parametrem id bude asi <presenter>/<action>/<id> a ne query string.
ad 2) Protože adresu generuješ v php dřív než je k dispozici javascript

já tohle řeším placeholderem, např. takto

$('#addContractBtn').on('click', function () {
    var customerID = $("#customerID").val();
    $.nette.ajax({
        url: {Record:addContract,id => 'asdf'}.replace('asdf', customerID),
        type: 'GET'
    });
});