2012-03-08 16 views
6

Powiel możliwe:
How to pass a variable/data from javascript to php and vice versa?Przepuszczasz zmienną javascript do kodu php?

Mam plik PHP i kodu javascript. Chcę ustawić zmienną php na wynik funkcji javascript, która jako parametr przyjmuje zmienną php. Na przykład:

$parameter = "this is a php variable"; 
$phpVar = echo "foo(" . parameter . ");"; 

Wiem, że nie można zrobić "= echo", czy istnieje inny sposób, w jaki mogę to zrobić?

Dzięki

+1

Send przy użyciu ajax, lub za pomocą formularza ... zależy od przypadku również na tym, co chcesz zrobić .. – StiveKnx

Odpowiedz

12

Nie można tego bezpośrednio zrobić, ponieważ JavaScript działa po stronie klienta, a PHP jest wykonywane po stronie serwera.

Najpierw należy wykonać JavaScript, a następnie wysłać wynik do serwera za pośrednictwem wywołania FORM lub AJAX.

Oto, co to może wyglądać następująco:

PHP

$parameter = "this is a php variable"; 
echo "var myval = foo(" . parameter . ");"; 

JavaScript

var myval = foo("this is a php variable"); // generated by PHP 

$.ajax({ 
    type: 'POST', 
    url: 'yourphpfile.php', 
    data: {'variable': myval}, 
}); 

Odbieranie PHP (yourphpfile.php)

$myval = $_POST['variable']; 
// do something 
+0

Odbierający kod PHP to plik określony przez twojaplik.php. Może to być oddzielna lub część bloku if w oryginalnym pliku PHP. –

+0

Wymowne i łatwe do zrobienia. – Jodo1992

1

Trzeba dokonać GET lub POST prośbę do skryptu z JavaScript.

3

Kod PHP jest uruchamiany na serwerze przed wysłaniem odpowiedzi; JavaScript jest uruchamiany po, w przeglądarce. Nie można ustawić zmiennej PHP z JavaScript, ponieważ nie ma zmiennych PHP w przeglądarce, gdzie JavaScript działa. Będziesz musiał użyć żądania AJAX z JavaScript do skryptu PHP, który przechowuje informacje, które chcesz uzyskać.

+2

Kto downvoted, byłoby bardziej użyteczne wyjaśnić, co znajdźcie budzące zastrzeżenia, zwłaszcza że każdy, kto odpowiedział za mną, zdaje się mówić to samo co ja. Czy jest jakiś ważny niuans? Czy po prostu nie lubisz ludzi nazwanych od wysokiej jakości mięsa mielonego? – Chuck

0

Nie można przekazać js zmienna do php kod.
PHP działa na serwerze, tysiąc mil od klienta, gdzie uruchamiany jest js.

Można więc wywoływać tylko skrypt php, używając js lub zwykłego hiperłącza.

2

Spróbuj tego:

var a = "Result: "+ <?php echo json_encode($parameter); ?>;