senters Posted December 11, 2011 Report Share Posted December 11, 2011 Kā no js funkcijas ajax json masīva (http://screencast.com/t/LheH7PeFp) ielikt datus mainīgajā un izsaukt citā js blokā (http://screencast.com/t/G8HzYcdi1)? Quote Link to comment Share on other sites More sharing options...
0 briedis Posted December 11, 2011 Report Share Posted December 11, 2011 Esi dzirdējis par tādu lietu kā cikls? :) jQuery ir forša metode, lai iterētu masīvu: http://api.jquery.com/jQuery.each/ Quote Link to comment Share on other sites More sharing options...
0 senters Posted December 11, 2011 Author Report Share Posted December 11, 2011 Esmu, bet vai esi sapratis ko gribu panākt? Man no json data masīva ārpus f-jas vajag ielikt mainīgajā komentāra skaitu un augstāk failā (datatable konfigā) to izmantot, lai noteiktu cik komentāri ir jau pievienoti. Ja ir 0, tad nerādīt paginate bloku (http://screencast.com/t/A5gatdIc). Quote Link to comment Share on other sites More sharing options...
0 briedis Posted December 11, 2011 Report Share Posted December 11, 2011 Man baigi negribas iedziļināties tajā kodā, bet kur tad īsti ir problēma? Ar JS nemāki iegūt masīva izmēru? Nemāki padot mainīgo no PHP uz JS? Nemāki uztaisīt vienkārus ajax pieprasījumu, kas atgrieztu komentāru skaitu? Quote Link to comment Share on other sites More sharing options...
0 Maris-S Posted December 12, 2011 Report Share Posted December 12, 2011 Nu Tev, ja pareizi sapratu, pēc katras komentāra pievienošanas ir atkārtoti jāpārbauda komentāru skaits. Visticamāk to Tev jādara uzreiz pēc komentāra pievienošanas, ja pēc pievienošanas skaits ir tāds ka jārāda lapu pārslēgs, tad viņu atbilstoši arī parādi. Vai jāliek rezultāts kādā mainīgajā jau atkarīgs no realizācijas. Quote Link to comment Share on other sites More sharing options...
0 senters Posted December 12, 2011 Author Report Share Posted December 12, 2011 Tieši tā, esi pareizi sapratis. Komentāru skaitu iegūstu failā insert_comment.php, kurā izpildās gan komentāra inserts, gan nosaka cik komentāri jau pievienoti. Šos datus JSON masīvā padodu atpakaļ uz lapu, kurā ir komentāru saraksts un komentēšana. Kā no iegūtā data.komentars["all_comments"] iegūt mainīgo, ko pēc tam izmantot komentāru skaita salīdzināšanā DataTable pagination vajadzībai. Ja komentāri > 5 tad rāda lpp bloku, ja nav - nerāda. Quote Link to comment Share on other sites More sharing options...
0 Maris-S Posted December 12, 2011 Report Share Posted December 12, 2011 Īsti nesaprotu ko Tu padod atpakaļ uz lapu, jo JSON nav masīvs, tā ir rakstzīmju virkne, masīvu tā protams atgriezt var, taču kā rakstzīmju virkni atbilstošā formātā, kuru tad jāparsē. Vai sanāk tā, ka Tev ar JSON tiek atgriezti visi komentāri, vai tikai pēdējais? Vai arī tie komentāri, kurus jāattēlo konkrētajā lapā, ja tiek izmantots lapu pārslēgs? Uz ātro atradu dažas funkcijas no Jquery, kas strādā ar JSON, paskaties, iespējams nostrādās. http://api.jquery.com/jQuery.getJSON http://api.jquery.com/jQuery.parseJSON Quote Link to comment Share on other sites More sharing options...
0 senters Posted December 12, 2011 Author Report Share Posted December 12, 2011 Atgriežu pēdējo pievieno komentāru (teksts, autors, pievienošanas laiks) + visu komentāru skaitu (ieskaitot pievienoto). Ar šo skaitu arī būtu jāsalīdzina. Quote Link to comment Share on other sites More sharing options...
0 Maris-S Posted December 12, 2011 Report Share Posted December 12, 2011 (edited) Tad skaties JSON virknes parsēšanu, Ja Tu esi dabūjis pašu komentāru, tad tādā pašā veidā arī vajadzētu dabūt skaitu, jo kā jau tikko rakstīji, skaitu Tu arī atgriez JSON virknē. No tā JSON tad paņem skaitu un turpat salīdzini vai jārāda lapu pārslēgs vai nē. Apskaties tās jquery funkcijas ko norādīju, iespējams ar viņām var to vienkāršoti izdarīt, vai pameklē pa google vispār par JSON parsēšanu ar javascriptu. Pa google noteikti atradīsi arī pieeju to izdarīt ar eval, bet to labāk neizmanto, kaut arī būtu vienkāršāk. Edited December 12, 2011 by Maris-S Quote Link to comment Share on other sites More sharing options...
0 Grey_Wolf Posted December 12, 2011 Report Share Posted December 12, 2011 (edited) vispār par JSON parsēšanu ar javascriptu. var JS_objekts= eval ( '\'Atgrieztais_JSON STRINGS\''); viss! 1 rindinja . ties slshi nav tur nejaushi ... Edit: sor, mazliet nokljudijos. var masivs=eval('(' + mesage + ')'); alert(masivs.a); // atgrieziis mans kods vai kautkas cits un no PHP padod: $arr = array('a' => 'mans kods vai kautkas cits', 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); Veselas 2 !!! rindinjas edit2: aizmirsu piebilst ka json_encode() ir tikai no PHP 5.2.?? versijas . Edited December 12, 2011 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
0 senters Posted December 12, 2011 Author Report Share Posted December 12, 2011 (edited) Tad tas varētu izskatīties šādi: <script> $.getJSON('sql/insert_comment.php', function(data) { var masivs = eval('(' + data + ')'); var comment_count = masivs.all_comments; }); if (comment_count > 5) { paginate = true; } else { paginate = false; } $(document).ready(function() { $('#event_comments').dataTable({ "bPaginate": paginate; }); }); </script> Grey_Wolf, jā php pusē, tieši tā arī tiek padots. Edited December 12, 2011 by senters Quote Link to comment Share on other sites More sharing options...
0 Grey_Wolf Posted December 12, 2011 Report Share Posted December 12, 2011 (edited) Grey_Wolf, jā php pusē, tieši tā arī tiek padots. nu un JS pusē ar eval ;) izveido atpakaļ objektus (masīvus) kā jau rakstiju 1 rindiņa .. piedevām JQery arī shamo ļoti labi saprot , precīzāk shamam pat ir iekšeja f-ja kas no AJAX "automatiski" atkodē datus ... (faktski tas pats eval vien tiek izmantots. ) <pre class="prettyprint">$.getJSON('sql/insert_comment.php', function(data) {var masivs=eval('(' + data + ')');alert(masivs.a); // atgrieziis mans kods vai kautkas cits });</pre> Edited December 12, 2011 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
0 daGrevis Posted December 12, 2011 Report Share Posted December 12, 2011 Nopietni nevar kkā bez tā eval()? Quote Link to comment Share on other sites More sharing options...
0 Grey_Wolf Posted December 12, 2011 Report Share Posted December 12, 2011 (edited) Nopietni nevar kkā bez tā eval()? JQery tas bija nolamats kutkaa savādk, bet fktiski tas ir tas pats , un kur bailes no eval ? it-ipaši uz usera kompja? Edited December 12, 2011 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
0 Maris-S Posted December 12, 2011 Report Share Posted December 12, 2011 Nezinu vai jquery izmanto eval, lai parsētu JSON virkni, bet tomēr, cik droši ir izmantot JSON parsēšanai eval ir atkarīgs no datu avota. Šoreiz tas ir savs serveris, tā ka tas ir droši, ja ir kāds ārējs JSON avots, tad jau tas atkarīgs no tā vai var uzticēties datu avotam. Quote Link to comment Share on other sites More sharing options...
0 Maris-S Posted December 12, 2011 Report Share Posted December 12, 2011 Grey_Wolf, Javascripts būs tikai uz lietotāja datora. :) Problēma ir tad, ja dati tiek ņemti ne no Tava servera, ne Tavas mājas lapas, jo savai mājas lapai Tu vari uzticēties un zini ko Tu sūti, bet ja JSON tiek saņemts no citiem serveriem, tad drošībā ir atkarīga no tā avota. Izņemot eval ir parsēšanas metodes, bet tās būs lēnākas. http://www.json.org/js.html Quote Link to comment Share on other sites More sharing options...
Question
senters
Kā no js funkcijas ajax json masīva (http://screencast.com/t/LheH7PeFp) ielikt datus mainīgajā un izsaukt citā js blokā (http://screencast.com/t/G8HzYcdi1)?
Link to comment
Share on other sites
Top Posters For This Question
11
6
5
4
Popular Days
Dec 12
18
Dec 15
5
Dec 16
5
Dec 11
4
Top Posters For This Question
senters 11 posts
Maris-S 6 posts
briedis 5 posts
Grey_Wolf 4 posts
Popular Days
Dec 12 2011
18 posts
Dec 15 2011
5 posts
Dec 16 2011
5 posts
Dec 11 2011
4 posts
31 answers to this question
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.