Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmienna js -> php
Forum PHP.pl > Forum > PHP
jol.us_
Czy ktos wie czy sie da i jak to zrobic?

Chce przekazac zmienna z java script do skryptu php. Calosc znajduje sie w jednym pliku. Chce wyciagnac zmienna z js i w zaleznosci od jej wartosci wykonac odpowiedni kod php.

Konkretnie mowiac jest to detektor flash. Na razie calosc dziela na zasadzie ze jezeli jest wtyczka to przekierowuje na 1 strone a jezeli nie ma to na 2 strone. Jednak ostatecznie chcialbym to wszystko zrobic w jednym pliku bez zadnego przekierowania. Tzn. jezeli js wykryje odpowiedni plugin to zmienna przyjmuje wartosc "ok" jezeli nie to "nie_ok". Nastepnie chcialbym odczytac te zmienna przez php i wykonac odpowiednia czesc kodu.
BzikOS
Możesz przekazać tą zmienną metodą GET (w linku).
jol.us_
Chcialbym to rozwiazac innym sposobem.

Powiem o co chodzi. Spotakla mnie mala niespodzianka przy zglaszaniu stony do onetu - Infoseek nie indeksuje przekierowan.
Robiac to na zasadzie
http://www.jakisadres.pl/index.php?flash=ok
http://www.jakisadres.pl/index.php?flash=nie_ok
potraktuje to roniez jako przekierowanie. Czyli efekt taki sam jakby js przenosil na inny dokument.
BzikOS
Hmm no to POSTem smile.gif

[xml:1:9358b0393d]
<script language="JavaScript">
// taki schemat
if( flash_mode == True ) {
document.flash_detect.flash.value = 1;
} else {
document.flash_detect.flash.value = 0;
}
submit();
</script>

<form name="flash_detect" action="stronka.php" method="post">
<input type="hidden" name="flash" value="0">
</form>
[/xml:1:9358b0393d]

Może coś takiego? Pisane z palca, więc nie wiem czy zadziała smile.gif
jol.us_
Niestety nie dziala :cry:
w ogole zmienna sie nie chce wysylac.
BzikOS
Wieczorem sprawdzę kod, bo musi działać smile.gif
jol.us_
Oki biggrin.gif
ja juz probowalem na kilku linijkach ale zmienna przekazac sie nie chce... nawet kiedy ja na statycznie przypisalem nic z tego nie wyszlo.


ponizej kod detekcji wtyczki jaki obecnie uzywam:

[xml:1:f4f3bf7cc3]
<!-- Skrypt dla przegl&plusmn;darek kompatybilnych z Gecko oraz dla Opery -->
<script language="JavaScript" type="text/JavaScript">
majorVersion=6;
minorVersion=21;
contentPage="retro.php";
installPage="info.htm";
if(navigator.product=='Gecko' || navigator.userAgent.indexOf('Opera')!=-1) {
if(plugin=navigator.plugins["Shockwave Flash"]) {
if(majorVersion > parseInt(plugin.description.substr(plugin.description.indexOf(".")-1, 1)) || minorVersion > parseInt(plugin.description.substr(plugin.description.length-2)) )
window.location.replace(installPage);
else window.location.replace(contentPage);
} else {
window.location.replace(installPage);
}
}
</script>
<!-- Skrypt dla Microsoft Internet Explorera -->
<script language="VBScript">
On Error Resume Next 'wył&plusmn;czenie powiadamiania o błedach
isFlash=IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & majorVersion)) 'utworzenie obiektu
If isFlash Then 'sprawdzenie czy obiekt został utworzony
Window.Location=contentPage
Else
Window.Location=installPage
End If
</script>
[/xml:1:f4f3bf7cc3]


wyobrazam to sobie tak ze zamiast linijek

[xml:1:f4f3bf7cc3]
window.location.replace(contentPage);
window.location.replace(installPage);
Window.Location=contentPage
Window.Location=installPage
[/xml:1:f4f3bf7cc3]


wstawie jakas zmienna...
... nastepnie w kodzie php zrobie prosta pentle

[php:1:f4f3bf7cc3]
<?php
if ($zmienna=='ok'){
// tresc strony
} elseif ($zmienna=='nok') {
// info o braku plugina
} else {
// tutaj detekcja wg. powyzszego kodu
}
?>[/php:1:f4f3bf7cc3]


jak przesylalem zmienna przez GET:

[xml:1:f4f3bf7cc3]
contentPage="index.php?zmienna=ok";
installPage="index.php?zmienna=nok";
[/xml:1:f4f3bf7cc3]

to dzialalo.
BzikOS
Coś takiego wymodziłem:

index.php
[xml:1:2f47e1f556]<html>
<head>

<script language="JavaScript" type="text/JavaScript">
majorVersion = 6;
minorVersion = 21;
flashMode = 0;

if( navigator.product=='Gecko' || navigator.userAgent.indexOf('Opera') != -1 )
{
if(plugin=navigator.plugins["Shockwave Flash"])
{
if(majorVersion < parseInt(plugin.description.substr(plugin.description.indexOf(".")-1, 1)) || minorVersion < parseInt(plugin.description.substr(plugin.description.length-2)) )
flashMode = 1;
}
}
</script>

<script language="VBScript">
On Error Resume Next
isFlash = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & majorVersion))

If isFlash Then
flashMode = 1
End If
</script>
</head>

<body>

<form name="flash_detect" action="index2.php" method="post">
<input type="hidden" name="flash" value="0">

<script language="JavaScript">
document.flash_detect.flash.value = flashMode;
document.flash_detect.submit();
</script>
</form>

</body>
</html>[/xml:1:2f47e1f556]

no i w index2.php:

[php:1:2f47e1f556]<?php
print( $_POST['flash'] );
?>[/php:1:2f47e1f556]
jol.us_
Kurcze no dziala biggrin.gif
Dzieki, sam bym na to wpadl pewnie za jakies 10 lat smile.gif
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.