Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki,

 

if(topic_id != value["topic_id"])
	{
		topic_id = value["topic_id"];

		if(window.localStorage.getItem("score" + topic_id) > 0)
		{
			$.post("http://svetainekazkokia/kazkur/get_rate.php", {code: "0ay3j5as1Zua55f9T9s2upo", topic_id: topic_id}, function( data ) 
				{
					var value = parseINIString(data);
					if(value["votes_count"] > 0 && current_votes_count != value["votes_count"])
					{
						current_votes_count = value["votes_count"];
						current_votes_sum = value["votes_sum"];
						$('#rate').raty({readOnly: true, score: Math.round(current_votes_sum/current_votes_count)});
						document.getElementById("rate_bottom_text").innerHTML = 'Balsavo: ' + current_votes_count;
					}
					$.mobile.loading('hide');
				}
			);
			document.getElementById("rate_top_text").innerHTML = 'Ačiū už įvertinimą';
		}	
		else
		{
			$.mobile.loading('show');
			document.getElementById("rate_top_text").innerHTML = 'Įvertinkite atnaujinimą';
			$('#rate').raty({score: 0, click: function(score, evt) 
				{
					$('#rate').raty({readOnly: true, score: 0});
					window.localStorage.setItem("score" + topic_id, score);

					document.getElementById("rate_top_text").innerHTML = 'Palaukite...';
					$.post("http://svetainekazkokia/kazkur/rate.php", {uid: topic_id, rate: score, code: "0ay3j5as1Zua55f9T9s2upo"}, function( data ) 
						{
							$.mobile.loading('hide');
							var value = parseINIString(data);
							if(value["votes_count"] > 0)
							{
								current_votes_count = value["votes_count"];
								current_votes_sum = value["votes_sum"];
								$('#rate').raty({readOnly: true, score: Math.round(current_votes_sum/current_votes_count)});
								document.getElementById("rate_bottom_text").innerHTML = 'Balsavo: ' + current_votes_count;

								showMsg("Ačiū už įvertinimą");
								document.getElementById("rate_top_text").innerHTML = 'Ačiū už įvertinimą';
							}
							else
							{
								showMsg("Serveris neatsako");
								document.getElementById("rate_top_text").innerHTML = 'Pamėginkite vėliau';
							}
						}
					);
				}
			});
		}	  
	}

 

 

Visa tai yra aplikacijos aplinkoje. value["topic_id"] ir panašūs tai ką užkraunu. Bet dabar reikėtų paaiškinimo apskritai čia yra kaip vertinimo sistema kaip jinai veikia. Kokius tiksliai reikėtų php failus susikurti su kokiu turiniu, nes aš iš esmės turiu aišku pasidaręs, nu principas kiek supratau toks pirmu post išsiuntimu pagal temos id kurią užkrauni užkrauni balsus antru post metodu irgi uzkrauni kiek yra votu ar konrecios temos ir padidini vienu, nes čia lyg balsuoja tai ar gerai ar negerai principą gal ir supratau ir man neaišku kaip ten su ta topic_id kokį man jį reikia tenais padaryt.

 

if(window.localStorage.getItem("score" + topic_id) > 0)
		{

O tai kokiu atveju gali būt mažiau negu nulis, jeigu topic_id vistiek kažkoks juk skaičius.

 

 

 

 

 

Toliau kitas tai irgi aplikacijoje esantis čhat reikėtų taip pat principo paaiškinimo, kaip ten apskritai reikėtų kokius php failus susikurti.

 

http://pastebin.com/wga5QTjb

Redagavo audriuslio
Nuoroda į pranešimą
Dalintis kituose puslapiuose

if(window.localStorage.getItem("score" + topic_id) > 0)		

O tai kokiu atveju gali būt mažiau negu nulis, jeigu topic_id vistiek kažkoks juk skaičius.

 

Jeigu '"score" + topic_id' - neegzistuoja tada yra gražinamas nulis. O mažiau nulio ir negali būti.

Redagavo Arik
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Labai paprastai – yra paduodamas topik’o “id” numeris (iš kur paduodamas - neisivaizduoju) ir objektas vardu “score + topic_id” gali ir neegzistuoti (buvo ištrintas/ sugadintas ar dar kažkas).

 

Čia ne visas kodas, o tik dalis kurioje vykdomas straipsnių įvertinimas (ar kažkas panašaus).

 

Nelabai suprantu kam žmogui kuris neturi programavimo pagrindų aprašinėti kiekvieną eilutę? :blink:

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai man tada įdomu kokį skaičių man įrašyt į duomenų bazę nu topic_id, nes jis yra kaip ir kraunamas

 

topic_id = value["topic_id"];

 

 

window.localStorage.getItem šitas kaip supratau talpiną, saugo tavo paspaudimą, kad kelis kartus negalėtai balsuot? nes kiek žinau tai ten naudojama nu kaip visi naudoja .css ir taip toliau vertinimui jquery.raty. Nes tada nelabai suprantu kada žmogus vėl gali dėti vertinimą, kada anuliuojasi tas jo įvertinimas, kaip kitose sistemose kur yra vertinimas yra daroma ar nulinama po kažkiek laiko, kad vėl galėtų balsuot ar čia automatiškai nusinulina po kažkiek laiko. I dar + su tuo čhatu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Todėl, kad neaišku kas yra "topic_id", iš kur jis yra imamas, man situacija matosi taip:

 

"topic_id" tai yra straipsnio "id" (nežinau tiksliai ką ten reikia įvertinti). "value["topic_id"]" - gal imamas iš cookies.

 

jeigu "topic_id" nelygus "value["topic_id"]"

if(topic_id != value["topic_id"]) {}

reiškia tu dar nespėjai įvertinti.

 

jeigu objektas "score + topic_id" egzistuoja tada skaičiuojam balsavimo rezultatus:

if(window.localStorage.getItem("score" + topic_id) > 0) {}

 

kitam atvejui:

 else
          {
             $.mobile.loading('show');
      ...
   }

yra kuriamas naujas "score + topic_id":

window.localStorage.setItem("score" + topic_id, score);

ir pridedami tavo taškai.

 

 

Tai man tada įdomu kokį skaičių man įrašyt į duomenų bazę nu topic_id, nes jis yra kaip ir kraunamas
- greičiausia gali įrašyti 0,1,2,3... ir t.t. Kodo kur aprašytas "topic_id" - nėra, todėl tiksliai nežinau.

 

O prie ko čia čatas - išvis neisivaizduoju.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėl čato ir PHP:

 

PHP yra kviečiamas:

 

function loadMsg()  

$.post("http://svetainekazkokia/kazkas/get.php", {date: lastMsgDate, code: "0ay3j5as1Zua55f9T9s2upo", size_only: "1"},handleUnReadedMsgs); 

$.post("http://svetainekazkokia/kazkas/get.php", {code: "0ay3j5as1Zua55f9T9s2upo"}, handleLoadedAllMsgs);   

$.post("http://svetainekazkokia/kazkas/get.php", {date: lastMsgDate, code: "0ay3j5as1Zua55f9T9s2upo"},handleLoadedNewMsgs); 

 

ir

 

function addMsg()

$.post("http://svetainekazkokia/kazkas/post.php", {text: clientmsg, name: userName, code: "0ay3j5as1Zua55f9T9s2upo", token:userData["token"]}, function ( data ) 

$.post("http://svetainekazkokia/kazkas/post_private.php", {text: clientmsg, from_name: userName, to_name: current_chat_id,code: "0ay3j5as1Zua55f9T9s2upo", token: userData["token"]}, function ( data ) 

 

 

handleUnReadedMsgs – greičiausia turi parodyti kad yra neperskaitytas pranešimas.

 

HandleLoadedAllMsgs – krauna visus pranešimus (vardas, data, tekstas, paveiksliukas). 20 – tai yra magiškas skaičius. Greičiausia apriboja pašnekovų kiekį. „size“ - tai gal pranešimų kiekis.

 

HandleLoadedNewMsgs – krauna naujus pranešimus ir trina senus.

 

function addMsg() - siunčia į serverį tekstą, vartotojo vardą, ir vartotojo informaciją „userData["token"]“ - kas tai yra nežinau, gal kažkoks id numeris. Jeigu atsakymas „data“ lygus -2, -1 arba 0 reiškia problemos.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

$.post("http://svetainekazkokia/kazkas/get.php", {date: lastMsgDate, code: "0ay3j5as1Zua55f9T9s2upo", size_only: "1"},handleUnReadedMsgs); 

siunčiam į serverį:

date: lastMsgDate - dabartinis laikas;

code: "0ay3j5as1Zua55f9T9s2upo" – greičiausia unikalus kodas, pagal kurį tikrinama, kad pašalini žmonės neprisijungtu prie tavo čato.

size_only: "1" – kažkoks dydis kuris pagal nutylėjimą lygus vienam.

Gaunam iš serverio:

„data“ - aprašyta žemiau. Yra rodomas HTML tag'e „menu1“;

 

$.post("http://svetainekazkokia/kazkas/get.php", {code: "0ay3j5as1Zua55f9T9s2upo"}, handleLoadedAllMsgs);

siunčiam į serverį:

code: "0ay3j5as1Zua55f9T9s2upo"

Gaunam iš serverio:

„data“ - daromas parsingas į „value“;

„value“ turi:

"size" – žinučių kiekis;

"name" – pašnekovo vardas;

"date" – žinutės data ir/arba laikas;

"text" – žinutės tekstas;

"avatar - adresas kur guli paveiksliukas.

 

perduodam visus pranešimus į „msgList“:

for(i = 20; i > (20-value["size"]); i--){ }

 

$.post("http://svetainekazkokia/kazkas/get.php", {date: lastMsgDate, code: "0ay3j5as1Zua55f9T9s2upo"},handleLoadedNewMsgs);

siunčiam į serverį:

date: lastMsgDate

code: "0ay3j5as1Zua55f9T9s2upo"

Gaunam iš serverio:

„data“

 

jeigu lastMsgDate nelygus "date20" reiškia atsirado naujas pranešimas:

if(lastMsgDate != value["date20"]) {}

 

ciklas stumia senus pranešimus masyve „msgList“:

 for(i = 1; i <= 20-value["size"]; i++) {}

 

prideda naujus pranešimus į masyvą „msgList“:

for(i = 20; i > (20-value["size"]); i--) {}

 

Na ir funkcijoje - function loadMsg() masyvo „msgList“ duomenys įterpiami į HTML'ą

if(msgList["date" + i + ""]){
output += '<li class="left clearfix"><span class="chat-img pull-left">\
  <img src=' + msgList["avatar" + i + ""] + ' alt="Avatar" class="img-circle" width="50" height="50">\ …. }

 

ir rodomi:

document.getElementById("chatbox").innerHTML = output; 

 

O kaip dabar php scriptus susikurti su kokiu turiniu? 

Gauni iš javascript'o per POST'ą „date“, „code“ ir t.t (priklauso nuo funkcijos). Nuskaitai arba įrašai "size", "name", "text“ ir t.t į/iš DB arba tekstinį/o failo ir siusk atgal per POST'ą į javascript'ą.

 

Taip pat kaip yra kraunami žmonės čate

Kaip aš suprantu – nekaip nekraunami. Tu gali matyti tik pranešimus, vardus, tekstą, datą ir avatarkas.

 

iš kur žinoti kas yra čhate? 

Man atrodo – ne iš kur. Čia tu jau pats turi parašyti funkciją su javascriptu arba čia nevisas kodas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

document.addEventListener("offline", onOffline, false);
document.addEventListener("online", onOnline, false);
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);

function onPause()
{
isPaused = true;
}
function onResume()
{
isPaused = false;
onlineChecker();
loadMsg();
}
function onOffline()
{
noInternetAlert();
isInternetConnection = false;
}
function onOnline()
{
isInternetConnection = true;
load_all_msg = 1;
if(userName == null)
	loginUser(window.localStorage.getItem("userName"), window.localStorage.getItem("userPassword"), 0);
else
	onlineChecker();
switchMenu(currentMenu);
}

if(!isInternetConnection)
{
noInternetAlert();
}

function onlineChecker()
{
if(userName != null && userData["token"] != 0 && !isPaused && isInternetConnection)
	$.post("http://svetainekazkokia/kazkur/online.php", {name: userName, code: "0ay3j5as1Zua55f9T9s2upo", token: userData["token"]});
}

 

Ir kaip man krauti tą vardą, avatarą ir taip toliau iš kur? Taip pat kaip išsiūsti duomenis, kad taip galėčiau gauti:

 

msgList["avatar" + i + ""]

 

Nes šitaip msgList["avatar"] moku tai:

 

$saveee = "
avatar = $isduomenubazeskrautakazkas
";

echo $saveee;

 

Bet kaip su tuo + i + "

Redagavo audriuslio
Nuoroda į pranešimą
Dalintis kituose puslapiuose

function onlineChecker()
{
        if(userName != null && userData["token"] != 0 && !isPaused && isInternetConnection)
                $.post("http://PAMIRŠAI_IŠTRINTI_ADRESĄ/app/online.php", {name: userName, code: "0ay3j5as1Zua55f9T9s2upo", token: userData["token"]});
}

Na čia panašu kad vartotojas siunčia informaciją į serverį, kad jis yra prisijungtas, bet HTML atvaizdavimo, kas yra on-line – čia nėra.

 

Ir kaip man krauti tą vardą, avatarą ir taip toliau iš kur?

Reikia sukurti Duomenų Bazę MySQL. Sukurti lentelę/es kur bus laukai – vardas, prisijungimo_data, avataras ir t.t.

Kai PHP gauna POST pranešimą iš javascript'o, jis jungiasi prie DB ir nuskaito reikalingą informaciją, arba įrašo į DB, ir siunčia atgal savo atsakymą į javascript'ą.

 

Taip pat kaip išsiūsti duomenis, kad taip galėčiau gauti:

Aš retai ir labai mažai naudoju PHP ir javaskriptą, todėl man reikia krapštytis internete, kad rasti – kaip PHP apdoroja POST/GET. Tą patį gali padaryti ir tu.

 

msgList["avatar" + i + ""]

Bet kaip su tuo + i + " 

tai yra - An array in PHP is actually an ordered map. A map is a type that associates values to keys.

 

Todėl tai atrodo taip: msgList["avatar1"] = '"http://adresas_iki_paveiksliuko';

msgList["avatar2"] = '"http://adresas_iki_paveiksliuko';

msgList["avatar3"] = '"http://adresas_iki_paveiksliuko';

ir .t.t.

 

 

$saveee = "

avatar = $isduomenubazeskrautakazkas

";

echo $saveee;

 

Atrodo pradžia teisinga, tik į $saveee reikia įkišti ir „name“ ir „data“ ir t.t..

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jis gauna “name”, “code” ir magišką “token: userData["token"]” ir nieko negražina. Greičiausia viena iš DB lentelių turi “boolean” lauką “vartuotojas_yra_online”. Kai yra kviečiamas “online.php” , tada “vartuotojas_yra_online” tampa “true”. Taip pat reikia parašyti php kodą, kuris keičia “vartuotojas_yra_online” į “false”, jeigu nėra vartotojo aktyvumo. Pagal “vartuotojas_yra_online” jau galėsi lengvai išsiaiškint kas yra prisijungtas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jis gauna “name”, “code” ir magišką “token: userData["token"]” ir nieko negražina. Greičiausia viena iš DB lentelių turi “boolean” lauką “vartuotojas_yra_online”. Kai yra kviečiamas “online.php” , tada “vartuotojas_yra_online” tampa “true”. Taip pat reikia parašyti php kodą, kuris keičia “vartuotojas_yra_online” į “false”, jeigu nėra vartotojo aktyvumo. Pagal “vartuotojas_yra_online” jau galėsi lengvai išsiaiškint kas yra prisijungtas.

 

Jei tu nesupranti, tai jis pas tave neklausia, kas ten turėtų būti, jis tau jau kelintą kartą sako, kad parašytum tą failą už jį :angry:

Nuoroda į pranešimą
Dalintis kituose puslapiuose
O tai iš kur žinot aktyvus ar nea?

Reikia nuskaityti iš DB. Ieškok kodą kur yra HTML'as, kuris rodo kas yra „on-line“, kaip pavyzdys:

 output = '<div id="chatContainer" class="container">\
              <div class="row">\
                               <div class="panel">\
                                       <div id = "chatpanel" class="panel-body" style="height: ' + (($(window).height())-145) + 'px"><br>\
                                      <ul class="chat" id = "chatbox" style="word-wrap: break-word">\ ...

kai rasi – tada, nagrinėsim. O jeigu negali rasti, tada pats turi parašyti ir javascript'ą ir PHP. Kaip ir viskas paprastai - javascript'as siunčia užklausa (tam reikia padaryti „Timing Event“ kuris kas 30 sekundžių ar daugiau/mažiau paleido užklausą http://www.w3schools.com/js/js_timing.asp ) ir gauna atsakymą iš PHP, kas yra „on-line“ ir atvaizduoja. PHP nuskaito tai iš DB. O į DB šita informacija pateks iš šitos funkcijos -

function onlineChecker()
{
       if(userName != null && userData["token"] != 0 && !isPaused && isInternetConnection)
               $.post("http://svetainekazkokia/kazkur/online.php", {name: userName, code: "0ay3j5as1Zua55f9T9s2upo", token: userData["token"]});
}

 

kaip suprast užpauzinęs aplikaciją ar kaip?

function onPause()
{
       isPaused = true;
}

function loadMsg(){
      if(!isInternetConnection || (isPaused && !alertVibration) || (isPaused && currentMenu != 1))
             return;...

Tai reiškia, kad niekas ir nežino, kad pas tave pauzė. Tu tik negausi naujų žinučių.

Redagavo Arik
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pagal duotą kodą – nieko, todėl neturiu žalio suvokimo, kam jis reikalingas. Reikia ieškoti kodą, kuris naudoja „token“, o ne tik siunčia jį į PHP. Gali kol kas priskirt token'ui tuščią string'ą. Jeigu viskas veiks – tada ir be jo galima gyvent, kitu atveju – pagal klaidas pamatysi, kur ir kam jis naudojamas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

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

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...