PHP şablonları veya jQuery AJAX çağrıları kullanmak için?

5 Cevap php

Bu benim üç HTML bağlantıları olan bir menü görüntüleyerek ediyorum benim index.php sayfasından, bir pasajı.

Bir menü öğesi seçme <div id="main"> içine doldurmamak sayfa parametresi, PHP çiftleşmiş mantık sonra yükleri tanımlar.

<div class="span-24" id="menu">
  <table>
    <tr>
      <td><a href="index.php?page=races">Races</a></td>
      <td><a href="index.php?page=runners">Runners</a></td>
      <td><a href="index.php?page=searchRunners">Search</a></td>
    </tr>
  </table>
<br/>
</div>

<!-- main content -->
<div class="span-24" id="main">
<?php 
  $MYROOT=$_SERVER['DOCUMENT_ROOT'];
  if(isset($_GET['page']))
  {
    $page=$_GET['page'];
    @ require_once($MYROOT."/$page.php");
  }
  else
  {
    @ require_once($MYROOT."/races.php");
  }
?>
</div>

Bu çözüm çalışıyor, ama ben daha fazla sayfa eklemek ve izlemek için daha fazla sayfa parametreleri var gibi, bu yaklaşım, çeşitli PHP require() / require_once() ile korumak zor olacak endişeliyim yöntemi çağırır.

Ben de jQuery mevcuttur var ve ben sadece <div id="main"> için HTML işlemek için bir AJAX tabanlı sorgu kullanmanın yararları veya sakıncaları olabileceğini merak ediyordum.

Ben ben AJAX çağrısı içinde geçebileceği parametreleri hangi çağırabilir ve sayfada daha fazla esnekliğe sahip olacak beri AJAX, daha iyi bir çözüm olabilir kullanarak düşünüyorum.

PHP ve AJAX birlikte kullanılabilir biliyorum, ama proje bu tür başlayan olsaydı, bunu nasıl yapardınız?

5 Cevap

Bunu yapmak istemiyorum. AJAX güzel ve bu, ancak bunu hiç kötüye olacaktır. Bu gereksiz (Ben farkındayız eminim ki) Javascript engelli insanlara web sitesi erişilemez hale kalmayıp, aynı zamanda web sitenizde web seyir standardını öldürür. Nasıl biri, sonra Yarışları sayfasını kontrol etmek bir arkadaşınıza bağlantı gönderebilir? Nasıl sayfalar arasında ileri ve geri gidebilir? Orada bu geçici çözümler bulunuyor, ama buna değer değil. Da dahil olmak üzere güvenli istediğini iken dinamik yüzden sadece re-faktör PHP kodu için daha uygundur.

Paolo söyledikleri üzerine genişletmek için, Google ve diğer arama motorları değil "tarama" herhangi bir içerik javascript yoluyla yüklenen olabilir. Bu sayfaya sadece statik bilgiler endeksli alacağı anlamına gelir, ve sayfa sıralama tüm ama varolmayan olacaktır.

Eğer ajax kullanmak eğer hala istenen görev için kurmak gerekir php konuşuyor olacak, yani hiçbir şey gerçekten değiştirir. Ben bunun yerine belki de bu gibi farklı php dosyalarını çağırarak tek bir php komut dosyası tekrar bir parametre geçirerek neden merak ediyorum sanırım:

<td><a href="races.php">Races</a></td>
<td><a href="runners.php">Runners</a></td>
<td><a href="searchrunners.php">Search</a></td>

Onlara ayrı sayfalar yapmak. Bir şablonu sistemi kullanın. Kullanımı çok basit bir http://andy.greyledge.net/voot/index.php

Sen "% HEADER%" veya% FOOTER veya%%% BODY gibi içinde replacers ile bir HTML şablon sayfası ile başlar.

Eğer, bir php sayfasına bu sayfa almak bu değişkenleri ayarlayın ve sonra sayfayı oluşturmak.

Eğer daha fazla sayfa eklemek isterseniz HTML şablonu Menu eklemek ve her sayfa için gösterir.

Ve herkes dedi her şeyin doğru olduğunu.

Başka bir alternatif olmasını istediğiniz sayfaları bir dizi kullanmak olacaktır:

<?php 
    $pages = array('page', 'races');
    $MYROOT=$_SERVER['DOCUMENT_ROOT'];
    if(isset($pages[$_GET['page']])){
        @require_once($_GET['page'].'.php');
    }
?>

Eğer bu şekilde yapmak için gidiyoruz eğer bu size yeniden denemeden ne olduğunu gibi görünüyor ama, bir MVC framework geçmeden düşünmek isteyebilirsiniz