Problema variabila autorefresh

Discutii legate de AJAX, jQuery, MooTools, Prototype, Dojo, Yahoo! UI Library,script.aculo.us, ExtJS,AngularJS, Backbone.js, Ember.js, KnockoutJS

Moderator: Moderatori

dimmer
Average Member
Mesaje: 92
Membru din: Vin Oct 08, 2010 3:27 am

Problema variabila autorefresh

Mesajde dimmer » Mar Noi 20, 2012 2:00 pm

Salut,

sunt nou in jquery si m-am incurcat intr-un autorefresh simplu, mai exact la felul cum primeste variabila.

Cod: Selectaţi tot

var cc = '<?=$id?>';   

var refreshId = setInterval(function() { 
    $(".load").load('load.php?cx=' + cc); 
}, 5000); 


mai concret, vizual in partea stanga este un meniu vertical. cand se da click pe un link.php?id=1 se incarca intr-un div o pagin.php. aceasta pagina contine informatii pe baza id-ului (care sunt primite ok) iar la baza, incarca autorefresh-ul de mai sus.
dupa al doilea autorefresh, nu mai tine cont de id-ul paginii si schimba valoarea variabilei cu alte valori pe care le ia din meniul vertical, chiar daca denumirea variabilei este diferita.

a intalnit cineva problema asemanatoare? sau eventual daca imi puteti spune despre ce anume trebuie sa caut, am cazut in cutie si nu imi mai dau seama :bom: .

multam!



Avatar utilizator
MihaiC
Senior Member
Mesaje: 1641
Membru din: Dum Mai 14, 2006 8:07 pm
Localitate: Navodari

Re: Problema variabila autorefresh

Mesajde MihaiC » Mar Noi 20, 2012 2:56 pm

Sigur nu folosesti acelas nume de variabila prin alta parte pentru id ?
Evolution is a theory like gravity is a theory.
I believe in evolution like I believe the Sun will rise tomorrow.

dimmer
Average Member
Mesaje: 92
Membru din: Vin Oct 08, 2010 3:27 am

Re: Problema variabila autorefresh

Mesajde dimmer » Mar Noi 20, 2012 4:11 pm

si eu am zis ca poate se strecoara pe undeva uitat, dar nu sunt variabile la fel sau macar cu parti asemanatoare

sunt 3 parti:

1 meniul vertical are forma:
pagina.php?v=1
pagina.php?v=2
pagina.php?v=3 ...

se da click

Cod: Selectaţi tot

$(document).ready(function() {
 $(".meniu a").click(function(event) {
    $.ajax({ url: this.href, success: function(html) {
            $("#continut").empty().append(html);   
            }
   });
   return false;

si incarca continut.php intr div, (codul de mai sus l-am curatat rapid de partile pentru css , sa nu fie prea mult si fara legatura, este functionabil insa aici poate fi gresit, am pastrat modalitatea )


2. preiau variabila v prin get p si afisez continutul paginii

Cod: Selectaţi tot

$var = $_GET['v'];
SELECT ... WHERE id= var


3. imediat sub am codul de autorefresh, cu variabila de mai sus:

Cod: Selectaţi tot

var cc = '<?=$var?>';   
var refreshId = setInterval(function() { 
    $(".load").load('load.php?cx=' + cc); 
}, 5000);


face autorefresh, apoi schimba valoarea variabilei luand valorile din meniul vertical, intr-o logica pe care n-am inteles-o. am incercat si varianta din php load.php?cx=<?=$var?>, la fel.

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1641
Membru din: Dum Mai 14, 2006 8:07 pm
Localitate: Navodari

Re: Problema variabila autorefresh

Mesajde MihaiC » Mar Noi 20, 2012 8:50 pm

Pai ai putea sa abordezi altfel problema si anume sa faci refresh din parinte.

Cod: Selectaţi tot

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
   var idInt,
      speed = 5000;
   
   function getContent(href) {
      $.ajax({
         url: href,
         success: function(data) {
            $("#continut").html(data);   
         }
      });
   }
   
   $('#menu a').click(function() {
      clearInterval(idInt);
      var href = this.href;
      
      getContent(href);
      idInt = setInterval(function() {
            getContent(href);
         },
         speed
      );
      return false;
   });
});
</script>
</head>
<body>
<ul id="menu">
<?php
for ($i = 1;$i <= 5;$i++) {
   echo '<li><a href="pag.php?v=' . $i . '">Link ' . $i . '</a></li>';
}
?>
</ul>
<div id="continut"></div>
</body>
</html>


pag.php

Cod: Selectaţi tot

<?php

   $v = $_GET['v'];
   
   echo 'Valuarea e: ' . $v . '<br>';
   echo time();
Evolution is a theory like gravity is a theory.
I believe in evolution like I believe the Sun will rise tomorrow.

dimmer
Average Member
Mesaje: 92
Membru din: Vin Oct 08, 2010 3:27 am

Re: Problema variabila autorefresh

Mesajde dimmer » Mie Noi 21, 2012 9:28 am

probabil voi aborda asa cum ai spus, acum cat este dimineata mai incerc totusi poate gasesc de unde este :roll:

multam!
:-D

dimmer
Average Member
Mesaje: 92
Membru din: Vin Oct 08, 2010 3:27 am

Re: Problema variabila autorefresh

Mesajde dimmer » Joi Noi 22, 2012 3:43 pm

am gasit si logica, poate cineva stie o solutie, sau se mai intalneste problema si ii este de folos:

pastreaza fiecare variabila din meniul vertical, desi eu am un cache:false; iar cand face refresh le ia in ordinea navigarii:

daca am intrat in meniul vertical pe un singur link, cu id=1 face refresh doar la acesta si merge ok,
daca intru pe link id=1 apoi pe link cu id=2, face refresh prima data la id=1, apoi la id=2 si tot asa, le repeta.
daca merg si pe link cu id=3, la fel face refresh prima data cu id=1, apoi id=2, apoi id=3 si tot asa.

ar trebui ca dupa ce a dat click pe al doilea link din meniu, sa stearga variabila anterioara, un fel de clear history pe variabila id.

si cu refresh din parinte tot la fel se intampla.

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1641
Membru din: Dum Mai 14, 2006 8:07 pm
Localitate: Navodari

Re: Problema variabila autorefresh

Mesajde MihaiC » Joi Noi 22, 2012 3:59 pm

pai asta face clearInterval()
Evolution is a theory like gravity is a theory.
I believe in evolution like I believe the Sun will rise tomorrow.

dimmer
Average Member
Mesaje: 92
Membru din: Vin Oct 08, 2010 3:27 am

Re: Problema variabila autorefresh

Mesajde dimmer » Joi Noi 22, 2012 6:53 pm

iti multumesc foarte mult, sa ai parte de sanatate pana la adanci batraneti :P, exact ceea ce ai spus mai sus, solutia era clearInterval, mai exact cele 3 linii:
var idInt;
clearInterval(idInt);
idInt = setInterval(function() {

poate cineva mai are nevoie, prin autorefresh trebuia verificat daca exista un anumit fisier pe server.

Cod: Selectaţi tot

<script type="text/javascript">
    var idInt;
   clearInterval(idInt);
   idInt =  setInterval(function() {
$('#load').unbind();   
    var c = '<?=$cc;?>';
    var d = '<?=$dd?>';   
   var r ='./x/c-'+c+'-'+d+'.txt';

$.ajax({   
   url:'./x/c-'+c+'-'+d+'.txt',
   cache: false,
    type:'HEAD',
    error: function()
    {
 //
    },
    success: function()
    {
 //
   $("#load").load(' /load.php?cc='+c+'&rem='+r);
    }
});
}, 10000);
 </script>


oricand ai chef de o bere sau vin fiert, pm
:occasion5:


Înapoi la “Librarii Javascript”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Yahoo [Bot] și 1 vizitator