Autor Zpráva
janek007
Profil
Ahoj,
abych měl hezké url udělal jsem si Jquery funkci na vkládání obsahu s php souborů do definovaného DIV po stisknutí určitého tlačíka v menu.

session_start();

require(__DIR__ . "/config.php");

include(__DIR__ . "/inc/header.php"); ?>

<script>
$(document).ready(function(){
  var flag = 0;
  
  $(document).on( "click", "a", function() {
      flag = 1;
      var hodnota = $(this).attr('href').replace("#", "");
      $(".article").empty();
      $(".article").load("page/" + hodnota + ".php");
  });
  
  if (flag == 0) {
    $(".article").empty();
    $(".article").load("page/recepty.php");
  }
});
</script>

        <div class="article">          
        </div>

        <p class="pages"><small>Stránka 1 z 2</small> <span>1</span> <a href="#">2</a> <a href="#">&raquo;</a></p>

<?php include(__DIR__ . "/inc/footer.php"); ?>

Ale teď narážím na problém, že když dám F5, tak mi to skočí na výchozí stránku. Dále pak nějak netuším jak obsluhovat odesílání formulárů, abych byl schopen zpracovat data přes $_POST a zároveň zůstal na aktuální stránce.
Zkoušel sem funkci předělat tak, abych si vyčítal hodnotu z url za #, ale to mi vždy načítalo předcházející stránku než na kterou jsem aktuálně kliknul v menu.

Lze to nějak takto řešit, nebo jdu na to úplně špatně?
Petr Ká
Profil
janek007:
Dobré řešení je - udělat web, který bude fungovat bez javascriptu a až pak JS dodělat ;)
janek007
Profil
Vzal sem tě za slovo a vyřešil nějaké problémy kvůli kterým sem tam zatáhl tuto část JS. Teď už mi to jede zase jen čistě v php.
Dík
Radek9
Profil
janek007:
Pro tu dynamickou změnu obsahu si nastuduj funkci window.history.pushState. Pomocí ní můžeš změnit adresu na stejnou, jakou používá ten PHP script, a k tomu natáhnout obsah ajaxem. Při reloadu nebo odeslání formuláře se použije ta nová adresa, takže zůstaneš tam, kde máš být.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: