Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][JavaScript][PHP] komunikacja z ajaxem
omxd
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 18.05.2010

Ostrzeżenie: (0%)
-----


Witam,
mam pytanko całą komunikację przeprowadzam poprzez np.index.php?controller=page1 chcę wprowadzić ładowanie podstron poprzez funkcję ajax'a która wywołuje np. <a href="java script:ajaxpage('index.php?controller=page1', 'content');">page1</a>.Teraz zastanawiam się jak najlepiej będzie zroibć komunikacje w takim wypadku?Nie mogę używać tak jak wcześniej index.php?controller=page1 bo wtedy do diva dostaję całą stronę. Istnieje jakiś sposób żebym całość przeprowadzał dalej przez index.php korzystając z ajaxa nie używajać ...ajaxpage('page1.php', 'content').....?

kombinowałem tak ,ale wydaje mi się ,że tak jest "brzydko" ktoś ma pomyśl jak to zrobić inaczej?
//layout.phtml
  1. <?php
  2. if($_GET['element']==1){
  3. include_once('app/view/bottom.phtml');
  4. }
  5. ?>
  6. //przykladowy link do podstrony
  7. <a href="java script:ajaxpage('index.php?controller=page1&element=1', 'content');">page1</a>
  8. <div id="content">
  9.  
  10. <?php echo $this->content; ?>
  11. </div>
  12.  
  13. <?php
  14.  
  15. if($_GET['element']==1){
  16. include_once('footer.phtml');
  17. }
  18. ?>

//funkcja controller'a
  1. public function indexAction(){
  2.  
  3. $content = Lib_Factory_Controller::getController($_GET['controller']);
  4.  
  5. //$action = Lib_Factory_Final::finalUrl($_GET['controller'],$_GET['action']);
  6. $this->content = $content->run($_GET['action']);
  7. include_once('app/view/layout.phtml');
  8.  
  9.  
  10. }


nikt nie umie czy nie chce mi pomóc?
Powód edycji: [webdice]:
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
KrzysiekWildfire
post
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 11
Dołączył: 27.10.2010
Skąd: Kutno/Poznań

Ostrzeżenie: (0%)
-----


jeżeli chodzi o pomysł na wczytywanie stron ajaxem to mam dobry patent. Przy wysyłaniu zapytania możesz wysyłać w get ?ajax=true. Jeżeli masz taką wartość to wyświetlasz tylko treść strony, a jeżeli jej nie masz, to wyświetlasz całą stronę.
Tak jak koledzy wyżej proponują - wykorzystaj jQuery albo innego frameworka, zapytania w nim wyglądają w następujący sposób:

$.post('adres/strony',{ajax:true},function(data){
$("#content").html(data);
});

Jeżeli chcesz na szybko przerobić stronę w wczytywanie ajaxem to możesz zrobić następująco:

$(document).ready(function(){
$("a").click(function(){
$.post($(this).attr('href'),{ajax:true},function(data){
$("#content").html(data);
});
return false;
})
})

Przy użyciu powyższego kodu, każdy link na stronie wczytuje stronę - jeżeli masz założonego if'a w php o którym pisałem na początku, to powinno wszystko elegancko śmigać.
Sukcesów życzę.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 09:04