» »

Javascript spremenjivko vstavi PHP

Javascript spremenjivko vstavi PHP

a-ptuj1 ::

Imam že daljšo kodo v JavaScrit (JS). Sedaj pa bi moral vrednost spremenljivke JS na primer "a = 3" vstaviti PHP formulo, tako da bi se ta vrednost prenesla v vrednost spremenljivke "$a = 3", kot kaže spodnja koda. Prosim za pomoč

<script language='javascript'> 
var a = 3;
</script> 

<?php
$a = "<script language='javascript'> document.write(a);</script>";
for($i=0; $i < $a; $i++)
{
    echo "Test";
}
?>
  • spremenilo: a-ptuj1 ()

k--p ::

Najprej moraš razumeti delovanje. Javascript se izvaja v brskalniku, ti pa bi rad vrednost poslal na server, kjer se bo izvedla php skripta. Najlažje to storiš z AJAX requsteom -klicem na server, če uporabljaš kakšno priročno js knjižnico, npr. jquery ... Lahko pa narediš ajax tudi v čistem js ...

Vrednost pošlješ npr. s post:
$.ajax({
        type: 'post',
        url: 'lol.php',
        data: {
            a: 3
        },
        success: function( result ) {
            console.log( result ); če php skripta kaj vrača, se bo tukaj izpisalo
        }
    });

PHP skripta lol.php prebere vrednost:
<?php 

$a= $_POST['a'];  
echo 3+$a*5;
?>

a-ptuj1 ::

Razumem, da Javascript dela v brskalniku, PHP pa na strežniku.

Sem poskusil to vašo kodo pa mi ne gre. Pa ne vem zakaj ne.

Razumem, da bi moral poslati vrednost var a = 3 na strežnik in nato v $a. Vendar mi to ne uspe.

a-ptuj1 ::

Sem ustvaril dve datoteki
test 1.htm
<script language='javascript'> 
var b = 3:
$.ajax({
        type: 'post',
        url: '1.php',
        data: {
            a: b
        },
        success: function( result ) {
            console.log( result ); če php skripta kaj vrača, se bo tukaj izpisalo
        }
    });
</script>

in datoteko 1.php
<?php 
$a= $_POST['a'];  
echo $a;
?>

in pričakoval da mi bi izpisalo rezultat, vendar se nič ne zgodi. Lepo prosil, če mi lahko pomagate kaj je tu narobe. Zakaj mi vrednosti spremenljivke "b" ne prenese v "$a".

Zgodovina sprememb…

  • spremenilo: a-ptuj1 ()

Yacked2 ::

jQuery knjižnica ti manjka
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

a-ptuj1 ::

Sem v kodo dodal še
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

Pa se ponovni nič ne zgodi.

satko ::

v tvoji kodi sta dve napaki

komentarji v javascriptu morajo biti zakomentirani z // ali /* */ za večvrstične komentarje
 console.log( result ); //če php skripta kaj vrača, se bo tukaj izpisalo


tu pa si imel dvopičje namesto podpičja
var b = 3;


če to popraviš ti bo izpisalo to kar vrača 1.php v konzolo brskalnika

Zgodovina sprememb…

  • spremenil: satko ()

a-ptuj1 ::

Mi s pomočjo AJAX-a ne gre in ne gre.

Sem že mislil, da je kaj narobe na strežniku, pa sem testiral s drugo kodo, ki pa dela OK.
3.php
<script>
var1 = 1234
document.location = '2.php?var1=' + var1
</script>

2.php
<?php
$var1 = $_GET['var1'];
$a = ($var1 - 1232) * 2;
echo $a;
?>

Vendar je pri tej kodi težava v tem, da moraš s "document.location" preusmeriti podatek iz 3.php na 2.php, saj iz 3.php v 3.php ne gre. Jaz pa bi rad ostal ves čas na isti strani (3.php).
Prava rešitev bi bila, da bi se vrednosti spremenljivke a = 3 iz JavaScripta, ki se nahaja na 3.php prenesla preko strežnika v $a (PHP) nazaj na isto stran (3.php).

satko ::

Tudi prejšnja koda deluje čisto vredu, če pa kaj ne dela pa najboljše da preveriš za kakšne errorje s pomočjo brskalnikove konzole (F12 na večini brskalnikov)

Za to kar pa hočeš narediti tu pa najbolje da se lotiš tako

<?php 
	if (isset($_GET['var1'])){ //preverimo če je parameter podan
		echo $_GET['var1'] + 1; //in ga izpišemo povečanega za 1
	}
	else { ?> // če ni podan izpišemo JS kodo, ki se bo izvedla
	
	<script>
	var1 = 1234;
	document.location = 'test.php?var1=' + var1;
	</script>

<?php } ?>

Zgodovina sprememb…

  • spremenil: satko ()


Vredno ogleda ...

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

Matematična analiza naloga (strani: 1 2 )

Oddelek: Šola
576105 (4455) lebdim
»

[javascript] return stavek

Oddelek: Programiranje
8889 (711) lebdim
»

Pomoč pri sestavi algoritma

Oddelek: Programiranje
368740 (7571) mihy11
»

vprašanje iz flasha (actionscripta)

Oddelek: Programiranje
15894 (711) [MYTiX]
»

php variable scope problem

Oddelek: Izdelava spletišč
81182 (1095) darh

Več podobnih tem