2013-10-04 3 views
0

이 js 코드를 사용하여 텍스트 영역에서 일부 키워드를 가져 오려고합니다. 분명히 PHP 코드도 필요하지만 문자열에 문제가 있습니다 - var ehy = "php echo $dunno". 왜? 누구든지 나를 도울 수 있습니까?왜 'var ehy = "php echo dunno"'입니까?

<?php 
if (isset($_POST['line'])) { 
$line = $_POST['line']; 
$dunno = (explode(" ", $line)); 
} 
?> 
<script> 
function countLines(){ 
    var stringLength = document.getElementById("myText").value.length; 
    var count = Math.ceil(stringLength/document.getElementById("myText").cols); 
    // just devide the absolute string length by the amount of horizontal place and ceil it 
    return count; 
    } 
function what(){ 
    var n = countLines() 
    var tarea = document.getElementById('myText') 
    var lines = tarea.value.split("\n") 
    //for(var x = 0; x < lines.length; x++) { 
     $.ajax({ 
      type: "POST", 
      url: "", 
      data: "line="+lines, 
      success: function(){ 
       var ehy = "<?php echo $dunno; ?>" 
       $('#what').text(ehy) 
       }, 
      }); 
     //} 
} 
</script> 

</head> 

<body> 
    <h1>SearchFunction()</h1> 
    <textarea rows="10" cols="70" id="myText"><?php echo "what the hell?";?></textarea> 
    <input type="button" onclick="what()"/> 
    <p id="try"></p> 
    <p id="what"></p> 

</body> 
</html> 
+3

'$ dunno'는 배열로 보이기 때문에'' ''는 올바르지 않습니다. 일반적으로 PHP 값을 JavaScript로 내보내려면 항상'json_encode'를 사용하십시오. – Halcyon

+0

@FritsvanCampen : 답변으로 게시해야합니다. 너는 머리에 못을 박았다. 평범한 문자열 일지라도 제대로 이스케이프 처리되도록하려면'json_encode() '를 사용해야합니다. – Spudley

답변

0

거기에 약간의 PHP가있는 HTML 같은 페이지가 있습니다. 서버에

<html> 
<?php echo 'hi' ?> 
</html> 

는 PHP가 처리됩니다 및 모든 태그를 교체받을 :

<html> 
hi 
</html> 

을 특정 상황, 당신이 $dunno이 일부 포함 된 자바 스크립트의 중앙에 에코 장소에서.

이 모든 것은 서버에서 발생합니다. 클라이언트 (브라우저)는 지금까지 아무 것도하지 않았습니다.

페이지가 준비되었으므로 페이지를 해석하는 브라우저로 연결됩니다. 그들이 이미 해석 되었기 때문에 브라우저는 비트를 얻지 못합니다. 브라우저가 단순히 일부 JS와 HTML 도착 다음 what 기능이 실행될 때 값이 긴 결정에 더 이상 시점에서

var ehy = 5 

를, 그것은 성공 #what의 텍스트를 설정하는 아약스 요청을 트리거합니다 전에 PHP 인터프리터가

질문에 대한 답변이 되었기를 바랍니다.

+0

답변 해 주셔서 감사합니다. 그러나 이유는 무엇입니까? if (isset ($ _ POST [ 'line'])))이 문제를 해결할 수 있습니까? 페이지로드시이 PHP 코드가 실행되지 않습니까? –

+0

json_encode가 작동하지 않습니다. –

+0

Chrome 콘솔에서도 구문 오류가 발생합니다 (var ehy =
예기치 않은 토큰 <). 이게 무슨 뜻이야? –