Autor Zpráva
Homeboy
Profil *
Zdravím,

udělal jsem si třídu která mi vykonává všechny funkce které potřebuju pro práci s články.

Řešení bez ajaxu funguje perfektně ale jak mám pomocí ajaxu získat výsledek fukce (většinou "článek byl uložen", atd)
Takhle informace se sice zobrazí ale do boxu pro tento výpis se zobrazí i celá stránka znovu, takže mám vlastně stránku ve stránce ..

Musím dát ty funkce pro ajax do jiného souboru nebo tomuhle jde nějak zabránit..

Děkuji moc;)
Alphard
Profil
Třídu pracující s články lze považovat za model (MVC), určitě ji neduplikujte. O způsobu odezvy by měl asi rozhodnout controller. Na AJAXové požadavky může odpovídat třeba formou JSON (lze poznat z hlaviček). A až javascript u klienta bude na základě odezvy reagovat.
Homeboy
Profil *
Upřímě se v tom trošku ztrácím .. budu tedy konkrétnější ;)

mám stránku post.php která volá třídu Post.class.php ($ARTICLE = new Post();)

když se odešle formulář na post.php provede se vytvoření článku ($ARTICLE->create($_POST))

a když se vše uloží třída vrací TRUE, soubor post vrací tohle true pomocí return a pro ajax-call jsem zvolil echo "něco";

Co bych měl tedy konkrétně upravit? děkuji .. jestli to pomůže předložím i kod
Alphard
Profil
Tohle se zdá být vyhovující, kde je vlastně problém?

a pro ajax-call jsem zvolil echo "něco";
To, co je v echo (ale nic víc) se tedy odešle prohlížeči a ten zobrazí zprávu o úspěšné akci. Nevidím důvod, proč by se měla do boxu pro výpis zpráv zobrazit celá stránka.
Homeboy
Profil *
Já v tom problém taky neviděl, dokud sem to neotestoval .. možná bude problém v tom kde ten script mám .. mám ho nad celou stránkou

<?php
....
if(isset($_POST['action'])) {
$ARTICLE = new Post();
}
...
?>

DOCTYPE ...
<html>

Může být tohle porblém
Homeboy
Profil *
Napadlo mě řešení, ale nevím jestl to je to nejideálnější
<?php 
.... 
if(isset($_POST['action'])) { 
$ARTICLE = new Post(); 
} 
...
if(!isset($_POST["ajax"])) { 
?> 
DOCTYPE ... 
<html> 
...
</html>
<?php } ?>


Tohle funguje, ale myslim, že existuje něco lepšího
Alphard
Profil
[#5]
Ano, to je problém, pokud zobrazujete celý výsledek. Ale myslím, že třeba jQuery nemá problém vzít si JSON data na začátku souboru a zbytek zahodit.

[#6]
Tohle je víceméně cesta správným směrem.
Lze využít třeba hlavičku X-Requested-With: XMLHttpRequest.
Možností je ale více, třeba zde http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=99543.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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