Jump to content
php.lv forumi
  • 0

JSON masīva atgriezto datu ielikšana mainīgajā


senters

Question

  • Answers 31
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0

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.

Link to comment
Share on other sites

  • 0

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.

Link to comment
Share on other sites

  • 0

Ī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

Link to comment
Share on other sites

  • 0

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 by Maris-S
Link to comment
Share on other sites

  • 0

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 by Grey_Wolf
Link to comment
Share on other sites

  • 0

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 by senters
Link to comment
Share on other sites

  • 0

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 by Grey_Wolf
Link to comment
Share on other sites

  • 0

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.

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...