Miért nem lehet dolgozni ennek a függvények a kimenetével?
Most kezdtem el tanulni a json-t és az ajaxot és itt akadtam el:
Van egy ilyen függvényem, ami, ha lefuttatom a chrome console-ban, kiírja szépen a szűrőket. Viszont, amikor próbálok vele dolgozni a kódban, akkor nem működik. Ha már itt találtok hibát, szóljatok, ha nem, akkor mondjátok, még mit küldjek el.
function get_filters_JSON(){
var filters = [];
//Szűrők:
var filter_list = new Array();
$("input[name='enabled_filters']:checked").each(function(){
filter_list.push(this.value);
});
//console.log(filter_list)
var cols;
$.getJSON("get_cols.php", function(cols){
for(var key = 0; key < filter_list.length; key++){
if (key!=0) {filters_txt+=", "}
for(var i = 0; i < cols.length; i++){
if (cols[i].col_name==filter_list[key]) {
filter_type = cols[i].filter_type;
break;
}
}
//console.log(filter_type);
if (filter_type == "between_or_equal") {
if(get_value_by_id(filter_list[key])=="="){
filters.push( {"col_name": filter_list[key], "filter_type": "equal_to", "data": get_value_by_id(filter_list[key]+"_equal") } )
}
else{
from = get_value_by_id(filter_list[key]+"_from");
to = get_value_by_id(filter_list[key]+"_to");
filters.push({"col_name": filter_list[key], "filter_type": "between", "from": from, "to": to});
}
}
else{
filters.push({"col_name": filter_list[key], "filter_type": "equal_to", "data": get_value_by_id(filter_list[key])});
}
}
});
return filters;
}
Elméletileg így kéne kinéznie a JSON-nak:
[
{"col_name": "hazgyar", "filter_type": "equal_to", "data": "xyz"},
{"col_name": "utca", "filter_type": "search", "data": "xyz"},
{"col_name": "epitesi_ev", "filter_type": "between", "from": 1964, "to": 1999}
]
Bocs, gyakorikérdések kiszedte a tabokat.
Itt van a kód szépen: [link]
1. Kép helyett használj kódmegosztó weboldalt a forráskód megosztására - pastebin, hastebin, Github Gist,...
2. Írd le, mire szolgálna ez a függvány. Mit kellene csinálnia és mit nem csinál?
1. Ennek a mondatnak semmi értelme:
És itt van, amit nem értek: Ha csak simán lekérem, akkor szépen visszaadja az adatokat, amikor meg berakom JSON.stringify()-ba, akkor nem megy.
2. Ne használj jQuery-t, míg a natív kód sem megy. + egy hely, ahol ismeretlen, hogy mit, hol, milyen formában kapsz meg.
Elsőnek meg kell értened a JS működését!
A $.getJSON() async funkció ahogy minden AJAX alapú dolog.
Azaz nem várja meg a lefutássást, hanem meghívja egy külön szállón és megy tovább...
A getJSON() helyett:
$.getJSON(myUrl, myData, function(data) {
//stuff
//...
});
Megpróbálhatod így ajax -al:
$.ajax({
url: myUrl,
dataType: 'json',
async: false,
data: myData,
success: function(data) {
//stuff
//...
}
});
$.getJSON("get_cols.php", function(cols){
$.ajax({url: "get_cols.php", dataType: 'json', async: false, success: function(cols) {
Ezen az oldalon van a program, megnézhetitek a teljes forráskódot.: [link]
Ahol elakadtam, az az a lépés, hogy az összegyűjtött adatokat elküldjem a szerverre és onnan visszakapjak egy json-t, amiből jquery-vel táblázatot generálok.
A teszteléseimből arra következtettem, hogy a fent leírt függvényben van a hiba és nem jó formátumban(?) adja vissza az értéket.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!