2012-04-26 3 views
-2

이 스크립트는 stackoverflow에서 사용 된 미리보기와 다소 유사합니다. 사용자가 게시물에 입력하면 미리보기에 표시되기 전에 PHP 문자열로 변환되기를 바랍니다. 이것은 mysql_real_escape_string과 다른 것들을 사용하기 위해서이다.자바 스크립트 입력을 PHP 문자열로 바꾸기

어떻게 표시하기 전에 PHP 문자열로 만들 수 있습니까? 그리고 그 문자열을 벗어난 후에 다시 보여줄 수있는 방법을 아는 것도 아주 좋을 것입니다. 그것은 본질적으로 포함

코드의 두 부분

1

<script type="text/javascript"> 
    function preview(field) { 
     var p = document.getElementById('input_exercise'); 
     p.innerHTML = field.value; 
    } 

</script> 

2

<textarea style="width:500px; height:150px;" onkeypress="preview(this);"></textarea> 
<p id="input_exercise"></p> 

감사

+2

미리보기에서 mysql_real_escape_string은 무엇을 할 수 있습니까? 당신이 말하는 "PHP 문자열"은 무엇입니까? –

+4

php-string은 무엇을 의미합니까? – mpm

+0

나는 당신이 옳다고 이해한다면, 당신이 원하는 방식으로 이것은 불가능합니다. 문자열을 포함하는 서버에 대한 ajax 요청을 사용하여 서버의 PHP에서 처리하고 수정 된 문자열로 응답 할 수 있습니다. 이렇게하면 JavaScript를 PHP 코드와 "인터리빙"할 수 있습니다. –

답변

0

나는 호환 문제의 비트가 생각이 포함되어 있습니다. 많은 개발자들이 처음에는 자바 스크립트가 클라이언트 측에서 렌더링되는 반면, 템플릿 (PHP 코드에서는)이 서버 측에서 렌더링된다는 것을 이해하지 못합니다.

어떤 의미입니까?

이것은 서버가 브라우저에 출력하는 HTML 코드와 PHP 문자열을 실행하고 있음을 의미합니다. 이 HTML 문자열에는 자바 스크립트가있는 스크립트 세그먼트가 포함되어 있습니다. PHP 코드가 완료되면 코드는 서버를 떠나 네트워크를 통해 브라우저로 이동합니다. 브라우저에 도착하면 브라우저는 HTML을 생성 한 코드를 알지 못합니다. 그것은 정적 자원 일 수도 있습니다.

사용자 입력에 PHP 코드를 실행하려면 사용자 입력이 서버로 다시 이동해야합니다. 그리고 사용자에게 코드 출력을 표시하려면 출력이 서버에서 브라우저로 되돌아 가야합니다.

이 왕복은 두 가지 방법 중 하나로 수행됩니다. 첫 번째는 전체 페이지를 새로 고치는 양식입니다 (이 경우 적합하지 않음). 다른 하나는 AJAX입니다.

AJAX는 서버에 작은 정보를 보내고 서버 측에서 렌더링 한 다음 자바 스크립트 기능으로 렌더링 한 다음 다시 가져 오는 방법입니다. 텍스트 영역 입력을 "PHP 문자열"로 변환하는 것과 같습니다. 실제로 무슨 일이 일어날 것인가? 서버에 텍스트 영역 입력을 보내면 서버는 PHP 템플릿 (데이터에서 "mysql_real_escape_string"함수 만 작동)을 렌더링하고 렌더링 된 결과는 다시 javascript 콜백을 사용하면 "미리보기"div에 표시 할 수 있습니다.

Here a cool tutorial jQuery를 사용하여 아약스와 PHP에 대해 알아 냈습니다. (jquery 사용)

희망이 도움이됩니다.

javaspcript 코드는 다음

$.ajax({ 'url' : '/render-string-for-preview', 
      'type':'post', 
      'data' : { 'text' : $("textarea").val() }, 
      'success' : function(result) { $("#input_excercise").html(result) } 
     }); 

처럼 보일 것이다 그리고 당신은 "/ 렌더링 문자열를 위해 미리보기"단순히 (안 PHP 개발자 같은 것을 할 것입니다에 리소스를 추가해야합니다 .. .)

<? mysql_real_escape_string (POST["text"]) ?> 

그리고 그건 ....