Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS][PHP] kontrola treści przez javascripta
Forum PHP.pl > Forum > Po stronie przeglądarki
loganix
Witam,
Mój problem polega na tym, że wprowadzając ajax'a do mojej strony mam problem z rozdzieleniem sytuacji gdy JS jest włączony u klienta i gdy jest wyłączony. Z tego co wiem można to sprawdzić tylko po stronie klienta po prostu wywołując jakiś skrypt który albo się uruchomi (js enabled) albo zostanie zignorowany. Czy da się jakoś sprawdzić po stronie serwera czy js jest włączony? szukałem w zmiennych globalnych php ale chyba nie ma takiej informacji tam ..
Czy taki (to jest schemat) kod może zadziałać? - chodzi o to że gdy js jest włączony to to co wygeneruje php nie zostanie wyświetlone, a jeżeli jest wyłączony to zostanie.

Kod
<script type="text/javascript">
   if(1==2) // absurd
   {
</script>
<?php
   echo 'JS jest wyłączony skoro to widzisz';
?>
<script type="text/javascript">
   }
</script>

Ma ktoś jakiś pomysł na to inny? Bo ten mój nie działa jak powinien
vokiel
Jeżeli przesyłasz coś z ajaxa, możesz dodać parametr, że idzie to ajaxem, a jak nie to znaczy ze zostało normalnie wywołane.
Na stronie dajesz link do php i w przypadku gdy zadziała ajax to przejmujesz jego akcję, a jak nie zadziała to skrypt jest wywoływany bezpośrednio.
Wtedy nie ma ograniczeń w działaniu serwisu dla tych z javascriptem i tych bez. Tyle, że trzeba projektować trochę inaczej.
Tak czy inaczej nie warto bardzo się tym zajmować, bo ok 98%usr ma włączoną javascript.

  1. <script language="JavaScript" type="text/javascript">
  2. // jak js jest włączony to te funkcje się wykonają
  3. // a jak nie to wykona się ta część
loganix
Może gdy przedstawie sprawę z innej strony będą jakieś inne pomysły bo dostepu do serwera nie mam takiego niestety.
Chodzi o to przede wszystkim, że żeby podpiąć ajax'a musiałem przechwytywanie treści (GET'owski stuff) przenieść do odmiennego pliku bo gdy ajax uruchamial 'index.php?p=1' to strona ladowala się sama w sobie 2 raz. wiec teraz linki wyglądają 'load.php?p=2' więc po kliknięciu czegoś 'load.php' obsługuje wszystko a tam z kolei: jezeli js jest włączony to powinna się tylko treść pojawić która będzie wczytana do strony, a jak jest wyłączony js to powinno się wszystko pojawić to co w index'ie plus jeszcze treść.

macie jakiś pomysł jak można by w normalnej sytuacji, gdy js jest wyłączony, wczytywać w odpowiednie miejsce dane z 'load.php' ?
paziek
Możesz zrobic coś w stylu

Kod
<script type="text/javascript">document.write('load.php?p=2');</script>
<noscript>load.php?p=1</noscript>


Albo zrobić onclick na <a> i blokować domyślna akcje (przejście do innej strony) i zastąpic go przejściem do innej strony (window.location='nowa strona').
Zobacz sobie tutaj jak się to robi (akurat tutaj pojawia sie okienko z potwierdzeniem zamiast przejscia do innej strony, ale to juz prosta podmiana) Temat: Potwierdzenie usuniecia
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.