2013-11-22 2 views
-7
<script> 
$('#tes').click(function(){  
<?php $output = ''; 
    foreach($votes as $array) 
    if($array->color === $colors->color)  
    $output = $output . $array->votes . '<br>';?> 
    $('#Result').html(<?php $output ?>); 
    }); 
</script> 

어떻게 작동 되려면 어떻게 다시 작성해야합니까?jquery 코드 안에 PHP 코드가 실행되지 않습니다.

+2

일부 JavaScript 내부에서 PHP를 사용하면 ... PHP와 HTML을 혼합하는 것이 가장 중요한 것입니다. – akluth

+0

음 ... 코딩 스타일에 대한 빼기입니다. 당신은 할 수 없습니다. 단지 자바 스크립트와 PHP를 섞어서는 안됩니다. 클린 코드, 느슨한 커플 링 및 클라이언트와 서버 측에서 웹이 작동하는 방법에 대해 읽어보십시오. – deb0rian

+0

PHP는 서버의 Javascript를 클라이언트에서 실행하며, AJAX 호출을 제외하고는 그들이 만날 수 없습니다. –

답변

0

지저분한 코드의 문제를 제외하고,이 :

<?php $output ?> 

은 다음과 같아야합니다

<?php echo $output ?> 

또한 자바 스크립트 html() 기능은 HTML 따옴표를 의미하는 문자열을 필요로 않습니다.

$('#Result').html("<?php $output ?>") 

하지만 당신의 PHP $output 그것에 따옴표가있는 경우 다음, 그 깰 수있을 :처럼 뭔가. 그렇다면 addslashes()을 봐야합니다.

이것은 현재 문제를 해결해야하지만 의견 작성자는 코드를 작성하는 데 지독히 지저분하고/못 생기는 방법이라고 생각합니다.이 문제를 상당히 수정해야합니다.

제안이 조금 청소기를 만들기 위해 한 가지 방법은 다음과 같습니다

// At the top of your page 
<?php 
$output = ''; 
foreach($votes as $array) { 
    if($array->color === $colors->color) { 
     $output .= $array->votes . '<br>'; 
    } 
} 
?> 

// Down in your HTML code somewhere 
<div id="output" style="display:none"><?php echo $output ?></div> 

// Now for the much simpler javascript 
<script> 
    $('#tes').click(function(){ 
     $("#output").show(); 
    }); 
</script> 
당신은 HTML/JS와 PHP의 최소한의 혼합을 이런 식으로, 당신은 걱정하지 않아도

따옴표를 이스케이프 처리하는 것에 관해서는 PHP $output가 미리 (숨겨져있는) 페이지에 이미 있습니다. JavaScript는이를 보여 주어야합니다.

+0

해당 유형의 프로그래밍을 권장하지 마십시오 – deb0rian

+0

@Fratyr 여전히 특정 질문에 답하고 있습니다. 나는 여기에 할 좋은 일이라고 생각했다. – jszobody

+0

의견을 주셔서 감사합니다. 나는 php의 한 라이너가 어떤 색상을 선택했는지 PHP가 어떻게 알 수있을 것 이외에 전체 아약스 호출을 필요로하지 않을 것이라고 생각 했습니까? 멍청한 놈 스타일이 단순한 해킹이었습니다 – markl17

관련 문제