• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wywołanie funkcji php w zależności od szerokości ekranu

Object Storage Arubacloud
0 głosów
889 wizyt
pytanie zadane 18 sierpnia 2017 w JavaScript przez Krzysztofson Użytkownik (620 p.)

Witam, 

mam dwie funkcje napisane w php: komputer() i telefon() i chciałbym aby po załadowaniu strony na komputerze wywoływała się funkcja komputer(), a na telefonie telefon(), oczywiście chodzi o szerokość ekranu urządzenia, próbowałem to robić w ten sposób ale nie działa(jestem początkujący nie śmiać się ! :D):

<script>
	if(screen.width>600){
		<?php
			komputer();
		?>
			}else{
				<?php
					telefon();
				?>}
</script>

proszę o pomoc

komentarz 18 sierpnia 2017 przez jpacanowski VIP (101,940 p.)
Takich rzeczy się po prostu nie robi. Backend to backend... Mylisz backend z frontendem. Od takich rzeczy jest CSS i/lub JS.
komentarz 18 sierpnia 2017 przez Krzysztofson Użytkownik (620 p.)
nie myle tych dwóch pojęć, potrzebuję narzędzia to wywołania tych dwóch funkcji napisanych w php, jednak muszę wywołać je w zależności od szerokości urządzenia, w css nie mogę tego zrobić bo te funkcje mają się wykonywać po załadowaniu strony wiec display: none nic nie pomoże
komentarz 18 sierpnia 2017 przez Tomek Sochacki Ekspert (227,510 p.)

w css nie mogę tego zrobić bo te funkcje mają się wykonywać po załadowaniu strony wiec display: none nic nie pomoże

Jeśli po załadowaniu to nie ma już PHP i funkcji, bo już masz wczytaną cała odpowiedź serwera. Pozostaje więc manipulowanie po stronie klienta np. CSS albo JS, ale nadal na już wczytanych danych.

Pytanie co to za dane że nie możesz tego zrobić w CSS? Ewentualnie możesz np. wysłać do klienta kod, w którym znajdzie się wywołanie ajax, które z kolei prześle na serwerek dane o szerokości ekranu i w ten sposób w PHP zrobisz np. odpowiedni redirect na widok PC lub widok TEL (np. do osobnych szablonów jeśli z takowych korzystasz). Ale to działanie mega na około i trochę wg mnie bez sensu bo de facto klient dostanie docelową stronę dopiero po response z drugiego requesta. 

Proponuję przeanalizować czy na pewno dobrą drogą idziesz? Co chcesz osiągnąć, tzw. co mają robić te funkcje? Czasami lepiej przesłać do klienta nieco więcej danych i obrobić je w JS/CSS niż tak na okrętkę kombinować.

2 odpowiedzi

+1 głos
odpowiedź 18 sierpnia 2017 przez Ehlert Ekspert (212,670 p.)
To tak nie działa. Po stronie serwera możesz sprawdzić user-agent, ale generalnie za dostosowanie do rozdzielczości odpowiada css/js.
komentarz 18 sierpnia 2017 przez Krzysztofson Użytkownik (620 p.)
wiec w jaki sposób mogę to zrobić ?
komentarz 18 sierpnia 2017 przez efiku Szeryf (75,160 p.)
W PHP tego nie zrobisz. Pytanie tylko po co, niech się tym zajmie CSS/JS.

https://stackoverflow.com/a/31162741
0 głosów
odpowiedź 18 sierpnia 2017 przez sc4rface Dyskutant (7,710 p.)
Nie lepiej będzie wykorzystać dostępne w CSS media screen?
komentarz 18 sierpnia 2017 przez Krzysztofson Użytkownik (620 p.)
ale wtedy mogę tylko ukryć diva w którym funkcja jest wywoływana dla jakieś szerokości, ale mimo tego funkcja ta się będzie wykonywać, a ja chcę aby wykonywała sie tylko jedna z nich, podczas gdy obie są wywoływane w kodzie strony i w zależności od szerokości urządzenia wykonywać kod tej właściwej
komentarz 18 sierpnia 2017 przez pablop76 VIP (123,180 p.)
Witam. Czy zadań tych funkcji nie może wykonać js ?
komentarz 19 sierpnia 2017 przez Krzysztofson Użytkownik (620 p.)
Nie ma opcji bo te funkcje pobierają dane z bazy danych.
komentarz 19 sierpnia 2017 przez pablop76 VIP (123,180 p.)

Podobne pytania

0 głosów
3 odpowiedzi 562 wizyt
pytanie zadane 28 lutego 2016 w JavaScript przez Kacper Duda Obywatel (1,970 p.)
0 głosów
1 odpowiedź 374 wizyt
0 głosów
1 odpowiedź 138 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...