2013-12-16 2 views
-2

자바 스크립트에서 php 변수를 사용할 때 문제가 있고 php에서 javascript 변수를 사용할 때 문제가 있습니다.우리는 자바 스크립트에서 PHP 변수를 사용할 수 있고 PHP 코드에서 javascript 변수를 사용할 수 있습니까?

$UpdateText="updateReTotal(Tills,'pos_cash','{$till->till_id}');updateVariance('{$till->till_id}')"; 

echo '<script type="text/javascript">' 
    , 'testFunctionForUpdateTotal(.$UpdateText.);' 
    , '</script>'; 
+0

당신은 자바 스크립트로 PHP의 출력을 직접 안됩니다. PHP 데이터에 하나의'''또는 다른 JS 메타 문자가 있고 구문 오류로 JS 블록을 삭제했습니다.'json_encode()'를 통해 항상 출력되므로 적어도 유효한 JS를 생성 할 수 있습니다. –

답변

2

방금 ​​문제가 있습니다. :

$UpdateText="updateReTotal(Tills,'pos_cash','{$till->till_id}');updateVariance('{$till->till_id}')"; 

echo '<script type="text/javascript">' 
    , "testFunctionForUpdateTotal('".$UpdateText."');" 
    , '</script>'; 

이것은 당신이 출력 HTML에 echo 문을 사용하지 말아야하는 이유의 좋은 예입니다. PHP는 당신이 당신의 HTML 안에 PHP를 포함 할 수 있도록 설계되어 있으며 그 이용해야한다 : 당신이 연결을 사용하는 경우 자바 스크립트 코드로 PHP 변수를 넣을 수 있습니다

$UpdateText="updateReTotal(Tills,'pos_cash','{$till->till_id}');updateVariance('{$till->till_id}')"; 
?> 
    <script type="text/javascript"> 
     testFunctionForUpdateTotal('<?= $UpdateText; ?>'); 
    </script>'; 
+1

''짧은 코드''대부분의 프로덕션 환경에서는 PHP 단축 코드가 기본적으로 비활성화되어 있기 때문에? – AeroX

+0

정말이에요? PHP 5.4부터는 영구적으로 사용할 수 있습니다. –

+0

이식성을 위해 짧은 태그가 PHP 5.4 이상에 종속되거나 짧은 태그 설정이 활성화되도록하는 경우 긴 스타일이 선호됩니다. http://stackoverflow.com/a/200666/2594742 – AeroX

0

, 당신은에 연결을 사용하여 이미 에코. 자바 스크립트가 브라우저에와 PHP가

가장 좋은 건 그냥 자바 스크립트 변수

0

자바 스크립트는 클라이언트 측을 다시 전달하는 서버에 그대로

PHP는 자바 스크립트 변수를 볼 수 없습니다. PHP는 서버 측입니다. 그들은 어떻게 든 이야기 할 수는 있지만 언제나 그렇게 쉬운 것은 아닙니다.

자바 스크립트에서 PHP 변수를 사용하려면 방법이 필요합니다. 당신은 곧이 일정한처럼 조금 인쇄됩니다 실현거야,

echo "var phpVar = '{$myVar}';"; 

을하지만 :

var phpVar = "<?php echo $myVar; ?>"; 

또는 에코 기준 : 쉬운 방법입니다. 이것은 페이지의 렌더링에서만 수행 할 수 있으므로 약간 제한적입니다.

var phpVar = "5"; 

결과는 동일합니다 $myVar5이 포함되어 직접를 작성하는 경우는 정말 같은입니다. JavaScript에서 PHP var를 사용하는 또 다른 방법은 AJAX에 가져 오는 것입니다. jQuery로 예를 들면 :

$.get("/page_that_sends_my_var.php", { }, function(res) { 
    var phpVar = res; 
}); 

같은 page_that_sends_my_var.php 뭔가를 가짐으로써 :

<?php 
echo $myVar; 

하지만 비동기 될 것입니다. 따라서 서로 다른 두 가지 목적을 위해 두 가지 방법이 있습니다. 첫 번째는 동 기적으로 페이지가 렌더링 될 때만 작동합니다. 두 번째 호출은 비동기 호출을 원할 때마다 작동합니다. 아마도 항상 두 번째 방법을 사용합니다. 좀 더 우아하고 AJAX는 할 수있는 좋은 방법입니다. 응용 프로그램을보다 동적으로 만듭니다.

PHP에서 Javascript 변수를 사용하는 방법은 두 가지 방법으로 수행 할 수도 있습니다. 첫 번째 방법은 양식을 사용하고 양식을 제출하는 동안 변수를 양식의 데이터에 포함시키는 것입니다. 다른 하나는 AJAX 호출을 사용하여 PHP 스크립트를 호출하고 변수를 보내는 것입니다.

다음
$.post("page_that_uses_my_var.php", { "myVar" : myVar }, function(res) { 
    // do something if you like 
}); 

, page_that_uses_my_var.php에서 :이 같은

<?php 
$jsVar = $_POST["myVar"]; 
관련 문제