Ztrácející se parametr funkce handle při ajaxovém .get požadavku

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jeremy13
Člen | 18
+
0
-

Pokouším se zprovoznit ajax v komponentě s využítím .get a payload. problém mám ten, že ač mám v komponentě následující funkci:

public function handleSelectUsersByCompanyId($company) {
	\Nette\Diagnostics\Debugger::fireLog("company: ".$company);

	$users =... //zde se naplni users pomoci fetchPairs dle $company

	$presenter->payload->users = $users;
	$presenter->sendPayload();
}

Tak parametr $company je NULL, přičemž požadavek vypadá následovně:

…/add?do=form-selectUsersByCompanyId&company=1

v šabloně mám následující:

<script type="text/javascript">
        $(function(){
                $('#user_company_id').change(function(event) {
                        $.get({link selectUsersByCompanyId!},{'company': $('#user_company_id').val()}, function(payload){
                        var list = $('#user_id').text('');
                        for (var i in payload.users) {
                              $('<option></option>').attr('value',i).text(payload.users[i]).appendTo(list);
                        }
                        });
                        return false;
                });
        });
</script>
Ot@s
Backer | 476
+
0
-

Zkus použít sprintf pro JQuery (aby celé URL pro signál generovalo nette). Tj. místo řádku:

$.get({link selectUsersByCompanyId!},{'company': $('#user_company_id').val()}, function(payload){

prubni:

val link = {link selectUsersByCompanyId!, '%s'};
$.get($.sprintf(link, $('#user_company_id').val()), function(payload){
boky
Člen | 18
+
0
-

jeremy13 napsal(a):

<script type="text/javascript">
        $(function(){
                $('#user_company_id').change(function(event) {
                        $.get({link selectUsersByCompanyId!},{'company': $('#user_company_id').val()}, function(payload){
                        var list = $('#user_id').text('');
                        for (var i in payload.users) {
                              $('<option></option>').attr('value',i).text(payload.users[i]).appendTo(list);
                        }
                        });
                        return false;
                });
        });
</script>

\--

Zkus to takhle:

<script type="text/javascript">
$.get({link selectUsersByCompanyId!},{"{!$control->getParamId('company')}": $('#user_company_id').val()}, function(payload){
</script>
jeremy13
Člen | 18
+
0
-

Díky, bokyho rada funguje :)