» »

Uporaba spremenjivke iz JavaScript v PHP

Uporaba spremenjivke iz JavaScript v PHP

a-ptuj1 ::

Pozdravljeni.

Kako uporabiti spremenljivko iz JavaScripta v PHP. Na prvi spletni strani imam narejen izračun v javascriptu, pa bi rad samo rezultat izračuna iz prve prenesel na drugo spletno stran in ga tam izpisal. Kako definirati spremenjivko iz JS da bo definirana tudi v PHP. Se pravi da bo (var e = $e). Da bo na drugo izpisalo rezultat 3. Tale spodnji primer:

prvastran.htm
<script language="javascript">
var c = 1
var d = 2
var e = c + d
</script>


drugastran.php
<?php
$imedatoteke = "prvastran.htm";
$fp = fopen($imedatoteke, "r");
require ("prvastran.htm");
echo $e;
fclose($fp);
?>

Looooooka ::

tvoja koda samo odpre javascript file.se prav se ne bo nikjer nic zagnalo. javascript se mora prevest znotraj browserja na racunalniku klienta. ta mora potam poslati request nazaj na webserver z rezultatom.
bodisi HTTP POST ali HTTP GET request.
Ce pa zelis na strani samo prikazat rezultat pa php-ja sploh ne rabis.
Kaj tocno bi sploh rad dosegel?
Po kmecko...
"clovek odpre stran...vtipka lala in se mu kje in kdaj izpise kaj".

a-ptuj1 ::

Ja želim samo prikazati rezultat na drugi strani. Izpisan rezultat pa mora slediti vsakokratni spremembi izračuna iz tiste prve strani.
Na prvi strani http://www2.arnes.si/~gljsentvid10/ast_... izračuna čas Sončnega vzhod in zahoda, ki je vsak dan drugačen. Se pravi prenaša samo rezultat "ure".
Na drugi pa piše le :"Sonce danes vzide ob "6:24" zaide pa ob "19:38" uri".

vorantz ::

Štekaš kaj je point javascripta?
Nič ti ni treba met prvo drugo stran
Vse nrdiš na eni strani

a-ptuj1 ::

Kako naj razložim kaj bi rad.
Na prvi strani je JS koda, ki ima čez 1000 vrstic dolžine, da lahko izračuna vrednost Sončnega vzhoda. Rezultat izračuna te dolge JS kode se hrani v spremeljivki "sunrise".

Na drugi strani pa bi rad samo prikaz spremenjivke "sunrise". brez tiste dolge JS kode v ozadju. Se pravi rabim prenos podatka iz ene strani na drugo stran.

_Dormage_ ::

Includaj si JS fajl tam kjer ga rabiš in pokliči funkcijo za izračun sunrise.
Verjetno ne razumem kaj te muči.
Mogoče imaš težave ker je JS client-side in php server-side ?

galu ::

Torej rezultat maš pod spremenljivko 'e'...
Ko je vsa zahtevana koda izvršena, oz. ko hočeš da se rediricta... uporabi tole:
window.location = "myepicphpfile.php?result=" + e.toString() /* toString() ni vedno nujno */;


Pa v 'myepicphpfile' naj bo koda:
$myresult = $_GET['result'];
echo $myresult;
Tako to gre.

Zgodovina sprememb…

  • spremenil: galu ()

a-ptuj1 ::

Če prav razumem. bi naj zgledale kode tako.

prvastran.htm
<script language="javascript"> 
var c = 1 
var d = 2 
var e = c + d 
window.location = "myepicphpfile.php?result=" + e.toString()
</script>


drugastran.php
<?php $imedatoteke = "prvastran.htm"; 
$fp = fopen($imedatoteke, "r"); 
require ("prvastran.htm"); 
$myresult = $_GET['result']; 
echo $myresult;
fclose($fp); ?>


Vendar mi ne dela

Ziga Dolhar ::

Tole zagotovo ne bo delalo, dokler ne boš popravil ciljnega naslova v 5. vrstici prve datoteke.

2. in 3. vrstica druge datoteke sta sicer odveč.
https://dolhar.si/

a-ptuj1 ::

Sem poskušal čisto preprosti na isti strani vrednost JS spremenjivke uporabiti v PHP kodi, pa mi nič ne izpiše. Sploh ne razumem tega problema.

stran.php
<script language="javascript">
var1 = '123'
document.location = 'stran.php?var1='+ var1
</script>
<?php
$var1 = $_GET['var1'];
echo $var1;
?>

Ziga Dolhar ::

Tale tvoja koda zgoraj deluje perfektno. Output:

<script language="javascript">
var1 = '123'
document.location = 'ptuj.php?var1='+ var1
</script>
123


Link na moj strežnik z zgornjo kodo

... ampak, outputa ne utegneš videti, ker se ti stran TAKOJ ponovno preusmeri nazaj nase. Ups.

Resno, vzami si nekaj časa in se poglobi v popolne osnove spletnega razvoja in koncept delovanja PHPja in Javascripta.
https://dolhar.si/

Zgodovina sprememb…

galu ::

Heh, izvirni infinite loop. ^^

Dodaj kak if stavek, ki bo preverjal, če je $var1 že deklerirana, ali pa dodaj gumbek, ki bo php kodo izvršil le ob kliku, ali kaj podobnega.

Drugače pa ja...
Resno, vzami si nekaj časa in se poglobi v popolne osnove spletnega razvoja in koncept delovanja PHPja in Javascripta.
Tako to gre.

a-ptuj1 ::

Sem dodal if isset z namenom, da bi se preverilo če je dodeljena vrednost, kot je predlagal GaLu. Pa mi ne gre in ne gre.

<script language="javascript"> 
var1 = '123'
document.location = 'stran.php?var1='+ var1 
</script> 
<?php 
$var1 = $_GET['var1']; 
if (isset($var1))
echo $var1; 
?>

technolog ::

Obupaj, ker si nesposoben upoštevat kakršenkoli nasvet.

Resno, vzami si nekaj časa in se poglobi v popolne osnove spletnega razvoja in koncept delovanja PHPja in Javascripta.

a-ptuj1 ::

Sem poskušal "isset", da preveri, če je dodeljena vrednost. Ker je vedno dodeljena se koda ves ponavlja. Sem poskusil tudi s "break" pa mi je ne vstavi

<script language="javascript"> 
var1 = '123'
document.location = 'stran.php?var1='+ var1 
</script> 
<?php 
if(isset($_GET['var1'])); 
echo $var1; 
?>

vorantz ::

štekaš kje je problem?
javascript non stop pošilja naprej ko se stran naloži
dej ga v nek action, onclick na gumb recimo

a-ptuj1 ::

Hvala Vam @vorantz. Veliko Ste mi pomagali z Vašim nasvetom. Še enkrat hvala.
Največja pomoč pa je seveda napisana skripta. Zato sem jo napisal vsem ki jo boste potrebovali.

prvastran.htm
<html>
<head>
</head>
<body>
<script type="text/javascript">
a = 1;
b = 2;
c = a + b
window.location.href = "page1.php?a=" + a + "&b=" + b + "&c=" + c;
</script>
</body>
</html>


drugastran.php
<?php
echo "a = ". $_GET['a']."<br/> b = ".$_GET['b']. "<br/> a + b = ".$_GET['c'] ; 
?>

direstrait ::

U, hvala ful dobro in uporabno :)):))
8-O


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Prosim za predloge in pripombe

Oddelek: Izdelava spletišč
322093 (1236) msjr
»

Problem s PHP

Oddelek: Programiranje
121303 (1007) *ziga*
»

Kako relativno linkati v JavaScript?

Oddelek: Izdelava spletišč
51261 (1148) MrStein
»

Javascript in php

Oddelek: Izdelava spletišč
201925 (1614) rokpok
»

c++ neznanje

Oddelek: Programiranje
121040 (892) Nox

Več podobnih tem