Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: JQUERY a PHP proměnná

JavaScript JavaScript JQUERY a PHP proměnná

Aktivity (1)
Avatar
PGE
Člen
Avatar
PGE: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 PGE
Michal Šmahel (ceskyDJ):30.5.2015 19:02

Nebo se podívej sem, popisují tam GET pro JQuery.

Nahoru Odpovědět  -2 30.5.2015 19:02
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
PGE
Člen
Avatar
Odpovídá na Daniel Vítek
PGE: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
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Michal Šmahel (ceskyDJ)
Daniel Vítek: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
Avatar
PGE
Člen
Avatar
Odpovídá na Daniel Vítek
PGE: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 PGE
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  +1 30.5.2015 19:55
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Odpovídá na PGE
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
Nesnáším {}, proto se jim vyhýbám.
Avatar
PGE
Člen
Avatar
Odpovídá na Richard
PGE: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 PGE
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
PGE
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
PGE: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
PGE
Člen
Avatar
Odpovídá na Richard
PGE: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 PGE
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
PGE
Člen
Avatar
Odpovídá na Richard
PGE: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 PGE
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
PGE
Člen
Avatar
Odpovídá na Richard
PGE:30.5.2015 20:29

Nic..čisté...

 
Nahoru Odpovědět 30.5.2015 20:29
Avatar
Richard
Člen
Avatar
Odpovídá na PGE
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
PGE
Člen
Avatar
Odpovídá na Richard
PGE: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
PGE
Člen
Avatar
Odpovídá na Richard
PGE: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.