aika Posted February 8, 2012 Report Share Posted February 8, 2012 (edited) Situācija sekojoša: .get var saņemt divu tipu datus: html rindu vai json masīvu kā man atšķirt kas tika atgriezts? Rakstīju kodu pārliecībā ka $.isarray(data) palīdzēs, bet nekā... $.get("findproduct.fnc.php?id="+$("#id").val(), function(data){ if (data!=0) { if (data.id){ // nestrādā if ($.isarray(data)){ // arī nestrādā ... php atgriež {"id":"4008146456602"}, ja nu kas Edited February 8, 2012 by aika Quote Link to comment Share on other sites More sharing options...
Sasa Posted February 8, 2012 Report Share Posted February 8, 2012 pieliec papildu parametru kurš tad informētu kādā formātā vēlas saņemt datus no findproduct.fnc.php $.get("findproduct.fnc.php?cType=json vai html&id="+$("#id").val(), function(data){ if (data!=0) { if (data.id){ // nestrādā if ($.isarray(data)){ // arī nestrādā ... Quote Link to comment Share on other sites More sharing options...
aika Posted February 8, 2012 Author Report Share Posted February 8, 2012 (edited) nav zināms kādā formātā datus atgriezīs (ja tiek atrasts viens ieraksts - tad jsons, ja vairāki, tad html tabula) šajā galā vajag tikt skaidrībā kas tika padots. Edited February 8, 2012 by aika Quote Link to comment Share on other sites More sharing options...
daGrevis Posted February 8, 2012 Report Share Posted February 8, 2012 Ar šito testējam vai tas ir JSON. Ja nav, tad loģiski, ka tas būs tavs HTML. Quote Link to comment Share on other sites More sharing options...
aika Posted February 8, 2012 Author Report Share Posted February 8, 2012 Paldies, arī variants. Tātad tomēr nav tik vienkārši. Turklāt pamanīju ka izslavētais datatype Intelligent Guess arī manā gadījumā nemaz json neatpazīst. Tāpēc nācās ielikt .get ar , "json" un padot arī html kā json array Quote Link to comment Share on other sites More sharing options...
daGrevis Posted February 8, 2012 Report Share Posted February 8, 2012 Nu jā, JSON kā tāds nav datu tips. Tas ir kkāds datu tips pārtaisīts par stringu. Quote Link to comment Share on other sites More sharing options...
briedis Posted February 8, 2012 Report Share Posted February 8, 2012 Nu bļins, atgriez HTML kas ir JSON'ā iekšā ;) Quote Link to comment Share on other sites More sharing options...
aika Posted February 8, 2012 Author Report Share Posted February 8, 2012 daGrevis - da tur jau tā lieta ka jquery apgalvo ka atpazīs: dataTypeThe type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html). briedis: da tā arī izdarīju jau :) ! Quote Link to comment Share on other sites More sharing options...
daGrevis Posted February 8, 2012 Report Share Posted February 8, 2012 Un neatapzīst? Quote Link to comment Share on other sites More sharing options...
aika Posted February 8, 2012 Author Report Share Posted February 8, 2012 nope! bez "json" parametra manā gādījumā get data.id ir nedefinēts. Quote Link to comment Share on other sites More sharing options...
briedis Posted February 8, 2012 Report Share Posted February 8, 2012 Problēma jāmeklē ir cēlonī - kāpēc vispār ir tā, ka var uz tiem pašiem parametriem atgriezt gan JSON gan HTML? Manuprāt, tas ir ļoti neintuitīvi un izklausās pēc "coding by coincidence". Salabo kodu tā, lai tu vienmēr zini, kas tiks atgriezts, attiecīgi, pievieno kādu parametru, kas norāda, kāds tips ir jāatgriež kurā gadījumā, un tu zināsi kāds tips ir jānorāda pie $.ajax. Quote Link to comment Share on other sites More sharing options...
aika Posted February 8, 2012 Author Report Share Posted February 8, 2012 nu bet normāli ka meklēšanas rezultāts var būt gan viens, īstais, gan vairāki līdzīgie ieraksti. līdz ar to, manuprāt, tīri normāli ir php pusē sagatavot atbildi, kuru pasniegt! Ja tā ir datu rinda ko ievietot formā, tad rinda, ja tas ir atlasīto variantu saraksts, tad html sagatvots saraksts. Ja jau .get piedāvā tādu iespēju. Galu galā ja es pērku ķieģeli, kuru reklamē kā gan stāvošu, gan guļošu, jocīgi ir to tomēr mūrēt tikai guļošu, jo stāvēt viņam nesanāk :) Quote Link to comment Share on other sites More sharing options...
daGrevis Posted February 8, 2012 Report Share Posted February 8, 2012 Ja ir viens ieraksts, ieliec to masīvā. Ja ir vairāki ieraksti, tas jau būs masīvs. Masīvu vienmēr JSON enkodē. Quote Link to comment Share on other sites More sharing options...
briedis Posted February 8, 2012 Report Share Posted February 8, 2012 Nu ok, bet tad arī padod parametru kādu atbildi tu sagaidi - json vai html un attiecīgi to pašu liec ajax pieprasījumā. $.get(url, {data : data, type : 'json'}, function(){}, 'json'); $.get(url, {data : data, type : 'html'}, function(){}, 'html'); Nevis tā, ka tu nezini kas tieši tiks atgriezts. Quote Link to comment Share on other sites More sharing options...
Maris-S Posted February 8, 2012 Report Share Posted February 8, 2012 (edited) Nu bet normāli ka meklēšanas rezultāts var būt gan viens, īstais, gan vairāki līdzīgie ieraksti. Ja ir viens īstais taisi masīvu ar vienu elementu, bet ja ir vairāki, tad taisi masīvu ar vairākiem elementiem un vienmēr nosūti to masīvu kā JSON virkni. Tad arī nosaki cik Tev ierakstu ir masīvā viens vai vairāki un tas atbilstoši to apstrādā. Cik saprotu no aprakstītā, tad jau php pusē Tu uzreiz saproti, kas tiek padots, tātad vari to izveidot tā, ka JSON virknē tiek padoti divi mainīgie: tips un saturs, atbilstoši tips norāda vai tas ir vienkāršs teksts, vai html saraksts, otrajā mainīgajā tad Tu padot pašu tekstu vai htmlu un tad, saņemot JSON, ar JavaScript pārbaudi tipu un atbilstoši tam apstrādā saturu. Edited February 8, 2012 by Maris-S Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.