Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX] RR i przesyłanie danych w php lub JS
Forum PHP.pl > Forum > Przedszkole
!*!
Podstawowy szkielet strony działa na takiej zasadzie:

  1. <?php
  2. if(zabezpieczgetpost($_GET["costam"]) == 'test1') { include('1.php');}
  3. else if(zabezpieczgetpost($_GET["costam"]) == 'test2') { include('2.php');}
  4. else if(zabezpieczgetpost($_GET["costam"]) == 'test3') { include('3.php');}
  5. else if(!isset($_GET["costam"])) { include("1.php");}
  6. else {  echo'błąd';}
  7. ?>


oraz RR:

Kod
RewriteRule ^(a-z0-9)$ /ajax2.php?costam=$1


Przykładowy link:
Kod
http://localhost/index.php?test2


Tym sposobem zmienna get jest pobierana z linku który jest "obrabiany" w .htaccess i dzieki czemu wczytuje sie odpowiedni plik.
Jednak że czasy się zmieniają, chciałem się zabawić nieco mintAjax'em, wyszło coś takiego:

Kod
<script type="text/javascript" >
function wyswietl(plik, id){      
      var req = mint.Request();
      req.Send(plik, id);
}
</script>


  1. <a href="test1" onclick="wyswietl('test1', 'tutaj'); return false;" title="1" >Jeden</a>
  2. <a href="test2" onclick="wyswietl('test2', 'tutaj'); return false;" title="2" >Dwa</a>
  3. <a href="test3" onclick="wyswietl('test3', 'tutaj'); return false;" title="3" >Trzy</a>
  4.  
  5.  
  6. <div id="tutaj"></div>


I tutaj zaczynają się schody, bo aby JS/AJAX zadziałał, muszą być podane na sztywno ścieżki do pliku, po zmianie w .htaccess wygląda to tak

Kod
RewriteRule ^(test1)$ /1.php
RewriteRule ^(test2)$ /2.php
RewriteRule ^(test3)$ /3.php


I wtedy coś takiego działa. Jednak nie wiem jak to połączyć, tak że jeśli ktoś wyłączy JS to zadziała samo PHP, jednak nie mogę dla każdego pliku napisać w .htaccess osobnego wpisu, bo jest ich po prostu za dużo. Można to jakoś połączyć?
erix
Cytat
I wtedy coś takiego działa. Jednak nie wiem jak to połączyć, tak że jeśli ktoś wyłączy JS to zadziała samo PHP, jednak nie mogę dla każdego pliku napisać w .htaccess osobnego wpisu, bo jest ich po prostu za dużo. Można to jakoś połączyć?

Kod
RewriteRule ^(a-z0-9)$ /ajax2.php?costam=$1

Dopisz regułkę podobną do tej. Ona jest naprawdę bardzo prosta. ;]

Zamień testliczba NA podstawnik.php
!*!
Właśnie z tym mam zawsze problem... Jedyne co mi przyszło do głowy to

Kod
RewriteRule ^([a-z0-9]+)$ /$1.php


Ale coś nie za bardzo działa... Poza tym nie potrafię tego zobrazować, bo jeśli mam samo:

Kod
RewriteRule ^(a-z0-9)$ /ajax2.php?costam=$1
I to działa poprawnie dla php, to JS wczytuje to "jako pętlę" i wyświetla ponownie całą stronę jeszcze raz.
erix
Cytat
Ale coś nie za bardzo działa... Poza tym nie potrafię tego zobrazować, bo jeśli mam samo:

Pokaż cały htaccess, stawiam że w złej kolejności dodałeś regułki.
!*!
Kod
RewriteEngine On
RewriteBase /


RewriteRule ^([a-z0-9]+)$ /ajax2.php?costam=$1
RewriteRule ^([a-z0-9]+)$ /$1.php


Jeśli zamienię kolejność to nie zadziała ani jedno ani drugie.
erix
No nie dziw się, skoro pracują na tych samych wzorcach.

Nie bez powodu pisałem:
Cytat
Zamień testliczba NA podstawnik.php

co daje:
Kod
RewriteRule ^test([0-9]+)$ /$1.php [L]
RewriteRule ^([a-z0-9]+)$ /ajax2.php?costam=$1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.