Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: JQUERY a PHP proměnná

Aktivity
Avatar
Petr Gargulák
Správce kvízů
Avatar
Petr Gargulák:30.5.2015 18:02

Jak lze vytáhnout číslo stránky do odkazu v Jquery ?

<script type="text/javascript">// <![CDATA[
    $(document).ready(function() {
    $.ajaxSetup({ cache: false }); // This part addresses an IE bug.  without it, IE will only load the first number and will never refresh
    setInterval(function() {
    $('#refresh2').load("refresh.php?page=<?php echo $_GET["page"];?>");
    }, 1000); // the "3000" here refers to the time to refresh the div.  it is in milliseconds.
    });
    // ]]></script>
 
Odpovědět
30.5.2015 18:02
Avatar
Odpovídá na Petr Gargulák
Michal Šmahel:30.5.2015 19:02

Nebo se podívej <a href="https:/­/api.jquery.com/jqu­ery.get/">sem</­a>, popisují tam GET pro JQuery.

Nahoru Odpovědět
30.5.2015 19:02
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Neaktivní uživatel
Petr Gargulák:30.5.2015 19:07

Moc děkuji za reakci..jsem začátečník. Nevím jestli jsme se pochopili dobře.. na stránce refresh.php mám $page, která předává do url pomocí GET číslo...
A na stránce index.php mám ten script co jsem popsal výše....a potřebuji té funkci nebo metodě .load přiřadit tu proměnou s tím číslem.

 
Nahoru Odpovědět
30.5.2015 19:07
Avatar
Odpovídá na Michal Šmahel
Neaktivní uživatel:30.5.2015 19:08

Ale tohle je něco úplně jiného. Tohle není jako $_GET v PHP. Tohle vysílá AJAXový požadavek.

Nahoru Odpovědět
30.5.2015 19:08
Neaktivní uživatelský účet
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Neaktivní uživatel
Petr Gargulák:30.5.2015 19:45

Tak tahle funkce se mi líbila... , ale nevím jak jí dále použít....mohl bych otravovat a poprosit o polopatické vysvětlení...?

function getURLParameter(name) {
  return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null
}

myvar = getURLParameter('myvar');
 
Nahoru Odpovědět
30.5.2015 19:45
Avatar
Richard
Člen
Avatar
Odpovídá na Petr Gargulák
Richard:30.5.2015 19:55

Myslím že tu nikdo neví co vlastně potřebuješ, rádi poradíme, ale musíme vědět co a jak.
Zkus to polopatě vysvětlit, jako prvňákovi :-).

V url máš proměnnou a tu chceš dosadit do toho JS kódu? V tom případě mi přijde že to co si posílal v prvním postup je správná cesta, nebo chceš dosáhnout něčeho jiného?

Nahoru Odpovědět
30.5.2015 19:55
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Odpovídá na Petr Gargulák
Michal Žůrek - misaz:30.5.2015 19:59

v té funkci chybí komentář co dělá ten regex

 
Nahoru Odpovědět
30.5.2015 19:59
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Richard
Petr Gargulák:30.5.2015 20:01

Mám stránku index.php

<script type="text/javascript">// <![CDATA[
    $(document).ready(function() {
    $.ajaxSetup({ cache: false }); // This part addresses an IE bug.  without it, IE will only load the first number and will never refresh
    setInterval(function() {
    $('#refresh2').load("refresh.php" + page);
    }, 1000); // the "3000" here refers to the time to refresh the div.  it is in milliseconds.
    });
    // ]]></script>
</head>
<body>

<?php

?>
 <div class="wrapper">

<div id="refresh2"></div>




</div>

</body>
</html>

A loaduju přes Jquery z refresh.php

<?php
mysql_connect("localhost","root","") or die("Nelze se připojit k sql serveru");
mysql_select_db("clanky") or die("Nelze vybrat databázi");
mysql_set_charset("utf8");

$countQ = mysql_query("SELECT COUNT(*) as max FROM clanky");

if(mysql_num_rows($countQ) > 0) {
   $count = mysql_fetch_object($countQ);
   $max = $count->max;
}



function right_int($arg) {
  $arg = (int) $arg;

  if (is_numeric($arg)) {
    return $arg;
  }
  // v případě, že $arg neprojde kontrolou, bude naše $page 1 => začátek
  return 1;
}

define ("ON_PAGE", 6);

if(!isset($_GET["page"]))
  $page = 1;
else
  $page = right_int($_GET["page"]);


$by = (ON_PAGE * ($page - 1));

$articles = mysql_query("SELECT clanek FROM clanky ORDER BY clanek ASC LIMIT ".ON_PAGE." OFFSET " . $by);

if(mysql_num_rows($articles) > 0) {
  while($article = mysql_fetch_object($articles)){

echo "<div id='refresh'>$article->clanek</div>";
 }
}
// NA ZAČÁTEK
// pokud nejsme na začátku, udělat odkaz na začátek...
if($page > 1) {
  echo "<a href='http://localhost/strankovani/refresh.php/?page=1'>&lt;&lt;</a>";
}

// PŘEDCHOZÍ
// pokud  nejsme na začátku, zobrazit odkaz na předchozí a cyklus na předchozí
if($page > 1) {
  echo "<a href='http://localhost/strankovani/refresh.php/?page=".($page-1)."'>&lt;</a>";

  // PŘEDCHOZÍ - CYKLUS
  // vypíše 3 předchozí stránky
  for($i = 4; $i > 0; $i--) {
    if(($page - $i) >= 1){
      echo "<a href='http://localhost/strankovani/refresh.php/?page=".($page-$i)."'>".($page-$i)."</a>";
    }
  }
}

echo "<a href='#' style='color:grey;'>$page</a>";

// DALŠÍ
// když nejsme na konci, tzn. je aktuální menší než maximální počet / na stránce.
// Např. pokud bude max 10 a na stránce bude po 2, tak pokud je aktuální ($page) menší než 5.
if($page < ($max / ON_PAGE)) {
  // DALŠÍ - CYKLUS
  // vypíše 3 následující stránky
  for($i = 1; $i < 4; $i++) {
    if(($page + $i) <= ceil($max / ON_PAGE)) {
      echo "<a href='http://localhost/strankovani/refresh.php/?page=".($page+$i)."'>".($page+$i)."</a>";
    }
  }

  // další
  echo "<a href='http://localhost/strankovani/refresh.php/?page=".($page+1)."'>&gt;</a>";
}

if(($page + $i) <= ceil($max / ON_PAGE))

if($page < ceil($max / ON_PAGE)) {
  echo "<a href='http://localhost/strankovani/refresh.php/?page=".ceil($max / ON_PAGE)."'>&gt;&gt;</a>";
}
?>

A potřebuji načíst do toho .load stránku refresh.php?pa­ge=<?php echo $_GET["page"];?>" Kdy $page je číslo od jedné výše....

 
Nahoru Odpovědět
30.5.2015 20:01
Avatar
Richard
Člen
Avatar
Odpovídá na Petr Gargulák
Richard:30.5.2015 20:06

Takže url je třeba index.php?page=1, tzn to má volat refresh.php?page=1 ? V tom případě nevím kde je problém, něco nefunguje?

Nahoru Odpovědět
30.5.2015 20:06
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Michal Žůrek - misaz
Petr Gargulák:30.5.2015 20:08

Tady je odkaz a regex je regulérní výraz.. The RegExp constructor creates a regular expression object for matching text with a pattern.

http://stackoverflow.com/…ipt/11582513#…

 
Nahoru Odpovědět
30.5.2015 20:08
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Richard
Petr Gargulák:30.5.2015 20:11

Taky jsem testoval jenom číslo.. refresh.php funguje, ale , když chci číslo.. nefunguje.

 
Nahoru Odpovědět
30.5.2015 20:11
Avatar
Richard
Člen
Avatar
Odpovídá na Petr Gargulák
Richard:30.5.2015 20:13

A co to znamená "nefunguje"? Nějaký error, cokoliv?

Nahoru Odpovědět
30.5.2015 20:13
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Richard
Petr Gargulák:30.5.2015 20:16

tzn. že zadám do adresy url... http://localhost/…refresh.php/?… a do souboru index.php .load("refresh­.php?page=1"); s lomítkem nebo bez..to je jedno... a stránka se nenačte do <div id="refresh2"></di­v>

 
Nahoru Odpovědět
30.5.2015 20:16
Avatar
Richard
Člen
Avatar
Odpovídá na Petr Gargulák
Richard:30.5.2015 20:19

Otevři si konzoli (třeba v chrome ctrl+shift+j), píše to něco užitečnýho?

Nahoru Odpovědět
30.5.2015 20:19
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Richard
Petr Gargulák:30.5.2015 20:29

Nic..čisté...

 
Nahoru Odpovědět
30.5.2015 20:29
Avatar
Richard
Člen
Avatar
Odpovídá na Petr Gargulák
Richard:30.5.2015 20:31

A když si v prohlížeči načteš samotný refresh.php?page=1 tak ti to ukáže výsledek?
Když si otevřeš index a do tý konzole napíšeš $('#refresh2')­.load("refresh­.php?page=1"); tak se to zobrazí?

Nahoru Odpovědět
30.5.2015 20:31
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Richard
Petr Gargulák:30.5.2015 20:32

Zobrazí, ale neloaduje to a neni to v tom divu ve, kterém by to mělo být....

 
Nahoru Odpovědět
30.5.2015 20:32
Avatar
Petr Gargulák
Správce kvízů
Avatar
Odpovídá na Richard
Petr Gargulák:30.5.2015 20:35

Teda do konzole ne... z url jo...v consoli tam mi to vyhodilo tohle...

$('#refresh2')­.load("refresh­.php?page=1");
VM158:2 Uncaught SyntaxError: Unexpected token ILLEGAL
at Object.Injected­Script._evalu­ateOn (<anonymous>:895:140)
at Object.Injected­Script._evalu­ateAndWrap (<anonymous>:828:34)
at Object.Injected­Script.evalua­te (<anonymous>:694:21)

 
Nahoru Odpovědět
30.5.2015 20:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.