Komponentě se nepředá parameter poslaný AJAXově z javascriptu

Roman Halaxa
Člen | 60
+
0
-

Ahoj,

už si moc nevím rady. Mám tenhle javascript

scanOutput.change(function(){
    //Link do handleru
    var handlerLink = $('#nove-mereni-js-data').data("handlerLink");

    $.nette.ajax({
        'url': handlerLink,
        'data': {
            //Handleru se pošle naskenovaný kód
            code: scanOutput.val()
        },
        success: function(payload) {
            //Donačtení vrácených dat z handleru
        }
    });
});

Zde je vše funkční. Handler se zavolá, data se donačítají (Když naplním payload nějakými testovacími daty)

Problém je přímo v handleru

											//Kód je prázdný, nepředá se sem přesto že se v pořádku odešle
public function handleDependentCallback($code)
{
    //Načtení záznamu podle naskenovaného kódu, samozřejmě nefunkční protože nemám ten kód

		//Naplnění payloadu a odeslání dat zpět. To funguje v pohodě ale nemám ten záznam z databáze.
}

V presenteru tohle samé fungovalo… Příjde mi že kdykoliv zkouším formulář obalit komponentou hrozně si nabiju hubu, všechno je nefunkční a strávím u toho celý den jen abych zjistil že to bylo lepší tak jak to bylo :) Ale tentokrát to nechci vzdát. Tohle je poslední věc co nefunguje.

Četl jsem diskuze na tohle téma ale většina vláken je strašně stará. Děkuji za pomoc

manwe
Člen | 44
+
+1
-

ja teda nevim jak to resit „spravne“, ale da se to resit takhle

scanOutput.change(function(){
    //Link do handleru
    var handlerLink = {link dependentCallback! 'TMP'}.replace('TMP', scanOutput.val());

    $.nette.ajax({
        'url': handlerLink,
        success: function(payload) {
            //Donačtení vrácených dat z handleru
        }
    });
});

proste data posles primo v te URL… tzn ono si to vytvori link kde $code je TMP, a pres JS ten TMP prepises na hodnotu kterou chces

Roman Halaxa
Člen | 60
+
0
-

manwe napsal(a):

ja teda nevim jak to resit „spravne“, ale da se to resit takhle

scanOutput.change(function(){
    //Link do handleru
    var handlerLink = {link dependentCallback! 'TMP'}.replace('TMP', scanOutput.val());

    $.nette.ajax({
        'url': handlerLink,
        success: function(payload) {
            //Donačtení vrácených dat z handleru
        }
    });
});

proste data posles primo v te URL… tzn ono si to vytvori link kde $code je TMP, a pres JS ten TMP prepises na hodnotu kterou chces

Ahoj. Zatím neúspěšně zkouším :D

„/nove-mereni/?noveMereni-46609408=code&do=noveMereni-DependentCallback“

Tohle mi to vygenerovalo. Myslím že je tam něco přeházené :D Jdu zkoušet dál.

Díky

EDIT: stačilo to pojmenovat TMP jak jsi to měl ty, on ten parametr se jmenuje kód :D takže se to replacenulo jako první výskyt. Děkuju moc ale ! Sice to neni dokonalé ale aspoň se prozatím můžu pohnout dál :D

Editoval Roman Halaxa (22. 3. 2019 11:13)

CZechBoY
Člen | 3608
+
+1
-

Ta url je fakt nějaká divná…

Zkus explicitně uvést že nastavuješ hodnotu pro parametr code:

scanOutput.change(function(){
    //Link do handleru
    var handlerLink = {link dependentCallback!, code => 'TMP'}.replace('TMP', scanOutput.val());

    $.nette.ajax({
        'url': handlerLink,
        success: function(payload) {
            //Donačtení vrácených dat z handleru
        }
    });
});
Roman Halaxa
Člen | 60
+
0
-

CZechBoY napsal(a):

Ta url je fakt nějaká divná…

Zkus explicitně uvést že nastavuješ hodnotu pro parametr code:

scanOutput.change(function(){
    //Link do handleru
    var handlerLink = {link dependentCallback!, code => 'TMP'}.replace('TMP', scanOutput.val());

    $.nette.ajax({
        'url': handlerLink,
        success: function(payload) {
            //Donačtení vrácených dat z handleru
        }
    });
});

Momentálně funkční url je „/nove-mereni/?noveMereni-code=46609408&do=noveMereni-DependentCallback“

Já to TMP měl pojmenované code a ten parametr je první takže se to replacenulo jako první a udělalo to takový zmatek :) Teď už je to myslím v pohodě.

EDIT: ještě doplním že presenter je nove-mereni a komponenta se jmenuje taky nové měření proto ti možná příjde divná. Ještě to asi trošku zrefaktoruji postupně ať je to více jasné.

Editoval Roman Halaxa (22. 3. 2019 11:26)

CZechBoY
Člen | 3608
+
0
-

mně přišla divná protože si tam měl noveMereni-46609408=code, před code by měla být pomlčka a potom rovnítko a hodnota