2014-05-13 4 views
0

javascript에서 PHP 변수를 사용하려고하는데 다음과 같은 방법으로 작동하지만 작동하지 않습니다. 당신은 당신이 에코하려고 그것을JavaScript 내부의 PHP 변수

include './connection.php'; 
$rating = $_GET['rating']; 

echo '<script>'; 
echo 'document.getElementById("' .$rating. '").checked = true;'; 
echo '</script>'; //   ^^   ^^ 
+0

오류보고를 사용하도록 설정하면 진행 상황을 알려주는 메시지가 표시됩니다. 렌더링 된 HTML을 검사 할 때와 동일 – PeeHaa

+0

두 번째 줄의 $ rating에서 대괄호를 제거합니다. – WillardSolutions

+0

'echo 'document.getElementById ("'. $ rating. '") .checked = true;'; ' – PEIN

답변

2

아래 코드에서 잘못 알려 수 배열에있는 값보다

$rating을 배열로 정의하는 이유는 무엇입니까? 단순히 다음을 수행하십시오 :

include './connection.php'; 
$rating=$_GET['rating']; 
?> 
<script> 
document.getElementById('<?php echo $rating; ?>').checked = true; 
</script> 
<?php 
// continue script 

또한 현재있는 XSS (Cross-Site Scripting) 취약점 해결 방법도 고려해야합니다.

3

을 인용해야 그렇다면 는 아무도 나에게 나는 그것이 문자열이어야한다 같은데요

include './connection.php'; 
$rating[]=$_GET['rating']; 

echo '<script>'; 
echo 'document.getElementById(' .$rating. ').checked = true;'; 
echo '</script>'; 
+0

우리가 최적화한다면, 왜'$ rating'을 설정해야할까요? 그냥''. – Wogan

+0

@Wogan 예. 하나는 할 수 있지만 실제로'$ rating'은 그것을 다시 출력하기 전에 소독해야합니다. –

+0

@Wogan and Mike : 고맙습니다. 전 – user3541562

0
include './connection.php'; 
    $rating = $_GET['rating']; // forget the square brackets, you don't need an array made here 

    echo '<script>'; 
    echo 'document.getElementById("' . htmlspecialchars($rating) . '").checked = true;'; 
    echo '</script>'; 

htmlspecialcharsCross-site scripting에 귀하의 사이트가 취약하지 않는 확인합니다. document.getElementById는 문자열 매개 변수를 사용하므로 따옴표로 묶어야합니다.

+0

영어 위키 백과에 링크해야합니다.) – ccKep

+0

@ccKep 죄송합니다. 고마워. – Khub