senters Posted October 15, 2010 Report Share Posted October 15, 2010 (edited) Problēmas apraksts: Insertojot komentārus ar Jquery (AJAX POST), tie tiek ieinsērtoti pie attiecīgā notikuma. Katram pievienotam komentāram ir pievienošanas laiks/datums, kuru vēl speciāla fja (sk. zemāk) apstrādā (tā atrodas functions.php failā) Ja tiek pievienots komentārs, lapa nepārlādējas un uzreiz tas parādās lapā (sk. pēdējos komentārus attēlā, kur "pirms 0 sekundēm") Vizuāls problēmas piemērs Pārlādējot lapu datumi/laiki ir pareizi. Funkcijā problēmas nav. Jquery configs: $(function() { $(".AddCommentButton").click(function() { var test = $("#content").val(); var id = $(".OpenEventHeader").attr("id"); var dataString = { content: test, event_id: id }; if(test=='') { alert("Lūdzu ievadi komentāra tekstu"); } else { $(".OpenEventCommentFormCapt").show(); $(".OpenEventCommentFormCapt").fadeIn(400).html('<span class="loading">Pievieno komentāru ..</span>'); $.ajax( { type: "POST", url: "SQLProcedures/insert_comment.php", data: dataString, cache: false, success: function(html) { $(".xxx").after(html); document.getElementById('content').value=''; document.getElementById('content').focus(); $(".OpenEventCommentFormCapt").html('Pievienot komentāru'); } }); } return false; }); }); Datuma/laika funkcija insert_comment.php Fragments no izvades, pirms tam ir mainīgie ko sūta AJAX un inserts komentāra, pēc tam šis: $sql = mysql_query(" SELECT comment.id, comment.name as comment_name, comment.user_id, comment.event_id, comment.date_created as comment_date_created, user.name as user_name, user.surname as user_surname FROM comment left OUTER JOIN user ON comment.user_id = user.id WHERE event_id = '".$event_id."' ORDER BY id DESC"); $row = mysql_fetch_array($sql); $comment_name = $row['comment_name']; $comment_user_id = $row['user_id']; $user_name = $row['user_name']; $user_surname = $row['user_surname']; $comment_date_created = $row['comment_date_created']; // Izsauc fju $session_time = strtotime($comment_date_created); time_stamp($session_time); } echo " <div class='OpenEventComment'> <div class='OpenEventCommentPic'><img src='Images/test11.jpg' /></div> <div class='OpenEventCommentUser'><a href='#' class='User'>".$user_name." ".$user_surname."</a></div> <div class='OpenEventCommentText'>".$comment_name."</div> <div class='OpenEventCommentCreatedDate'>".time_stamp($session_time)."</div> </div> "; Edited October 15, 2010 by senters Link to comment Share on other sites More sharing options...
0 senters Posted October 15, 2010 Author Report Share Posted October 15, 2010 Neticu, ka šeit neviens nav, kas nemācētu palīdzēt?! Link to comment Share on other sites More sharing options...
0 Code Posted October 15, 2010 Report Share Posted October 15, 2010 Īsti nesapratu kur ir problēma... Tas, ka komentāros parāda 0 sekundes, kad pievieno? Laikam darbības nostrādā pietiekami ātri, lai nesanāktu sekunde. Link to comment Share on other sites More sharing options...
0 senters Posted October 15, 2010 Author Report Share Posted October 15, 2010 Bildē redzi, ka tur ir vairāki komentāri, reāli vieno klāt nepārlādējot lapu un visiem tiem būs 0 sekundes, kad pārlādēs lapu tad rādās pareizi. Link to comment Share on other sites More sharing options...
0 Code Posted October 16, 2010 Report Share Posted October 16, 2010 Nu tā sanāk... tu taču pie komentāra pievienošanas neatjauno datus citiem komentāriem. Link to comment Share on other sites More sharing options...
0 senters Posted October 16, 2010 Author Report Share Posted October 16, 2010 Tev ir daļēja taisnība, tiek pievienots itkā "pēdējais" komentārs un pārējiem dati netiek atjaunoti. Tad man interesē kā darīt, lai pievienojot komentāru tiek arī atjaunoti citi jau esošie komentāri, pie katra jaunā komentāra? Link to comment Share on other sites More sharing options...
0 Code Posted October 17, 2010 Report Share Posted October 17, 2010 Vai ir jēga iespringt uz tādām lietām? Ja gribi pilnīgi precīzus datus, tad jau nāksies pārlasīt pilnīgi visus komentārus, jo tik pat labi kāds komentārs var būt jau izdzēsts, labots utt. Savā insert_comment.php atselektē visus komentārus pa jaunu. Link to comment Share on other sites More sharing options...
0 senters Posted October 18, 2010 Author Report Share Posted October 18, 2010 Un Tu gribi teikt, ka, piemēram, twitters pārlasa visus komentārus, lai uzreiz kā ieposto jaunu comentu parādītu pirms cik laika tika pievienots iepriekšējais? Jo neloģiski ja rāda laiku un tur redzams, ka komentāriem ir pievienots pirms 0 sekundēm. Kad pārlādē tad protams parādās pareizi laiki. Sanāk ka liekot ar AJAX after, tiek pievienots jauns un vecie nečekoti, bet kad refrešo tad protams noselektē visus. Pārlasīt visus komentus pie katra jauna pievienota baigi negribās. (laikam, citu variantu nav ja grib tos laikus dabūt pareizus) Link to comment Share on other sites More sharing options...
0 rATRIJS Posted October 18, 2010 Report Share Posted October 18, 2010 Ja negribi paarlasiit visus, tad pieglabaa pie jaunaa komentaara taa izveidoshanas timestamp'u un pie naakoshaas paarlaades (AJAX) paareekjini laikus ieksh JS. Ar jaunajiem/dzeestajiem komentaariem - atdod JSON (vai ko nu izmanto) dzeesto komentaaru ID un jaunos komentaarus, taalaak arii ar JS pievieno, izdzees. Link to comment Share on other sites More sharing options...
Question
senters
Problēmas apraksts:
Insertojot komentārus ar Jquery (AJAX POST), tie tiek ieinsērtoti pie attiecīgā notikuma.
Katram pievienotam komentāram ir pievienošanas laiks/datums, kuru vēl speciāla fja (sk. zemāk) apstrādā
(tā atrodas functions.php failā)
Ja tiek pievienots komentārs, lapa nepārlādējas un uzreiz tas parādās lapā (sk. pēdējos komentārus attēlā, kur "pirms 0 sekundēm")
Vizuāls problēmas piemērs
Pārlādējot lapu datumi/laiki ir pareizi. Funkcijā problēmas nav.
Jquery configs:
Datuma/laika funkcija
insert_comment.php
Fragments no izvades, pirms tam ir mainīgie ko sūta AJAX un inserts komentāra, pēc tam šis:
Link to comment
Share on other sites
8 answers to this question
Recommended Posts