Autor Zpráva
barneby
Profil
Dobrý den,
Udělal jsem si script pro ajax načítání php souborů.
Funguje to takhle:
<a href="#" data-link="test" class="page-link">Odkaz</a>
Uživatel klikne na odkaz s classou ,,page-link"
$(function() {
      $(".page-link").click(function() {
       var page = $(this).attr("data-link");
       var dataString = 'page'+ page;
  
        $.ajax({
          type: "POST",
          url: "app/page_loader.php",
          data: dataString,
          cache: false,

           success: function (html) { 
             $('#pageContent').html(html);
             $('#pageContent').fadeIn('slow');   
           }
   
        });
        return false;
      });
     });
Ten se zpracuje a ajaxem se odešle do definovaného php souboru (app/page_loader.php) obsah atributu ,,data-link" který je definován v odkazu.
Skoro vše funguje jak má ale problém nasává při zpracování souboru (app/page_loader.php). V tomto souboru mám pro zkoušku tenhle kod
$page = $_POST["page"];
echo $page;
Problém je ten že soubor nedokáže vypsat poslanou hodnotu a zobrazí se jen prázdná stránka místo hodnoty která je definovaná v odkazu v atributu ,,data-link".
Nevíte někdo prosím kde je chyba? Už jsem vyzkoušel všechno co mě napadlo ale ono ne a ne se to zobrazit.
Děkuji :).
Chamurappi
Profil
Reaguji na barnebyho:
var page = $(this).attr("data-link");
Teď je v page řetězec "test".

var dataString = 'page'+ page;
Teď je v dataString řetězec "pagetest".

$.ajax({“ … „data: dataString,
Teď odesíláš řetězec "pagetest" metodou POST.

$page = $_POST["page"];
Teď se divíš, že POSTem nepřišla položka s názvem page.

Už jsem vyzkoušel všechno co mě napadlo
Pro příště by tě mohlo napadnout sledovat síťovou komunikaci, ve všech prohlížečích jsou na to nástroje. Nebo vypisovat si někam proměnné, které posíláš. Nebo na straně PHP určitě existuje nějaký postup, jak vypsat kompletní požadavek. Způsobů, jak najít tuto chybu, je spousta…

Doufám, že ten odkaz bude mít i smysluplný href.
barneby
Profil
Omluvám se dataString je takto
var dataString = 'page='+ page;
Ale stejnak to nefunguje
Monkeys
Profil *
barneby:

to co ti vrati php si vypis.


 success: function (html) { 
             
             
alert(html);
             $('#pageContent').html(html);
             $('#pageContent').fadeIn('slow');   
           }

predpokladam ze ti to vrati neake chyby pripadne nespravnu cestu k suboru.

M.
barneby
Profil
Vyhodí mi to tohle:

Ale žádná chyba tam není.
<?

$page = $_POST["page"];
echo $page;
?>



Problém vyřešen..
Chyba byla v tom že na začátku souboru bylo
<?
Místo
<?php
:D Všem vám děkuji za snahu :),
Můžete lock.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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