Black Friday Black Friday
Black Friday výprodej! Až 80 % extra bodů zdarma! Více informací zde
Avatar
Petra D.
Člen
Avatar
Petra D. :9. listopadu 22:01

Ahoj všem, potřebuji pomoc ;)
V .NET mám formulář pro vyhledávání produktů, výsledky se zobrazují v DataTable pomocí AJAXu.
Můj problém je (pravděpodobně) v kódování při přiřazení proměnné s vyhledávacím textem do proměnné v URL AJAXU:

ajax: {
url: dataUrlSearch + "?FindProduct=" + "@FindProduct" + "&cp=" + Id,
dataSrc: '',
xhrFields: {
withCredentials: true
}

Když je v @FindProduct text který obsahuje háčky např. "čaj" tak vyhledávání a zobrazení funguje v pohodě. Ale ve chvíli kdy je ve vyhledávaném textu písmeno s čárkou např. "heřmánkový" tak mi AJAX vyhodí chybu:
DataTables warning:table id=datatab - Ajax error. For more information about this error, please see http://datatables.net/tn/7
Vtipné je, že když do URL v AJAXu definuji přímo hodnotu např. "?FindProduct=heř­mánkový" tak mi vyhledávání taky funguje... A když si vypíši hodnotu uloženou v @FindProduct tak je v ní samozřejmě "heřmánkový"
Už vůbec netuším co s tím, koukám do toho od rána a pořád nic...
Díky za každý nápad :)

Zkusil jsem: Zkoušela jsem encodeURI() a encodeURICompo­nent() přímo na URL v AJAXu, slepá ulička byla taky ošetření HttpUtility.Ur­lDecode() pro hodnotu předávanou pomocí Get před posláním do SQL dotazu...

Chci docílit: Ráda bych aby vyhledávání fungovalo pro jakýkoliv text ;)

Odpovědět 9. listopadu 22:01
Jaký si to uděláš, takový to máš...
Avatar
jozef_i
Člen
Avatar
jozef_i:10. listopadu 9:05

Čo je to @FindProduct, nejaká javascript premenná? Je to url dobre zapísané, majú tam byť úvodzovky okolo @FindProduct ?

 
Nahoru Odpovědět 10. listopadu 9:05
Avatar
Petra D.
Člen
Avatar
Petra D. :10. listopadu 9:59

@FindProduct je proměnná z C#, když to napíšu bez uvozovek, tak vyhledávání nefunguje vůbec... A ani nepomůže udělat toto (s uvozovkama i bez):

var product = "@FindProduct"
ajax: {
url: dataUrlSearch + "?FindProduct=" + product + "&cp=" + Id,
...
}

Nahoru Odpovědět 10. listopadu 9:59
Jaký si to uděláš, takový to máš...
Avatar
jozef_i
Člen
Avatar
jozef_i:10. listopadu 10:18

Pochopil som to, je to razor variable, takže to musí byť bez úvodzoviek, ak je to string. Kde priraďuješ hodnotu do FindProduct, asi nemá hodnotu... Ak je to z modelu, treba použiť @Model.FindProduct

Editováno 10. listopadu 10:21
 
Nahoru Odpovědět 10. listopadu 10:18
Avatar
Petra D.
Člen
Avatar
Petra D. :10. listopadu 10:24

Jo promiň, mám tam @Model.FindProduct, chyba při kopírování...
Divný je, že mi vyhledávání funguje, cokoliv to vyhledá... jen tam nesmí být písmeno s čárkou a tomu nerozumím...
A bez uvozovek nevyhledává vůbec...

Nahoru Odpovědět 10. listopadu 10:24
Jaký si to uděláš, takový to máš...
Avatar
jozef_i
Člen
Avatar
jozef_i:10. listopadu 12:34

No neviem encodeURI() by malo zabrať...:(
Ja som to skladal pre action najprv som urobil @Html.Raw(Url­.Action("")) a potom po priradení parametrov cez replace som urobil encodeURI(uri)....

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 10. listopadu 12:34
Avatar
Petra D.
Člen
Avatar
Petra D. :10. listopadu 22:10

samotné encodeURI() nepomohlo, vliv mělo až @Html.Raw
takže jsi mě zachránil, díky moc... máš to u mě ;)

Nahoru Odpovědět  +1 10. listopadu 22:10
Jaký si to uděláš, takový to máš...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.