Jump to content
php.lv forumi
  • 0

Komentāra inserts ar AJAX, nenostrādā datuma/laika fja


senters

Question

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

8 answers to this question

Recommended Posts

  • 0

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

  • 0

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

  • 0

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

  • 0

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

Guest
This topic is now closed to further replies.
×
×
  • Create New...