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

- deleted
 - Člen | 61
 
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
 
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

- deleted
 - Člen | 61
 
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
 
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
        }
    });
});
				
- deleted
 - Člen | 61
 
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)