2013-08-15 1 views
-1

하나의 양식, 텍스트 영역 & 하나의 버튼이 있습니다. 버튼을 클릭하면 하나의 PHP 함수가 호출됩니다. 나는 서비스를 호출하여 텍스트 상자에 삽입 된 값 당 데이터를 가져옵니다. 기능 코드가 여기에PHP에서 텍스트 영역의 자바 스크립트 렌더링

function fire_btn(btnvalue) { 
    if(btnvalue=="Create Widget") { 
     var dataString = $("form").serialize(); 
     receiveReq.open("GET", '<?php echo $this->config->item('url');?>getData/retriveData?&'+dataString); 
     receiveReq.onreadystatechange = getdata; 
     receiveReq.send(null); 
     document.getElementById('btnsave').value="Save Changes"; 
    } 
} 

function getdata() { 
    if (receiveReq.readyState == 4) { 
     document.getElementById('code').innerHTML = receiveReq.responseText; 
     document.getElementById('codebox').focus(); 
    } 
} 

아이디 "코드"내 사업부 아이디 & 아이디 "codebox"내 텍스트 영역의 d는입니다. 이제

는 PHP의 retriveData 데이터 기능에 나는이

$x = "<input type='hidden' value='".$this->db->insert_id()."' name='hdn' id='hdn' />"; 
     $x .= "<textarea id='codebox' readonly style='cursor:auto;min-width: 643px; min-height: 112px;max-width: 643px;max-height: 112px;margin-left:5px;'><!--Code Starts-->&lt;script type='text/javascript'&gt;"; 
     $x .= "wID= '".$this->db->insert_id()."';"; 
     $x .= "document.write('&lt;div id=myads".$this->db->insert_id()."&gt;&lt;/div&gt;');"; 

     $x .="document.write('&lt;scr'+'ipt type="; 
     $x .='"text/JavaScript" src="'.$this->config->item('url').'allJs/myJs.js">'; 
     $x .= "&lt;/scr'+'ipt&gt;');&lt;/script&gt;<!--Code Ends--></textarea>"; 
     echo $x; 

myJs.js를하고있는 중이 야하는 것은

document.write('<link rel="stylesheet" type="text/css" href="style.css">'); 
document.write('<script type="text/javascript" src="http://myDomain.com/Create.js"></script>'); 

var myElement = document.getElementById('myads'+wID); 
var JavaScriptCode = document.createElement("script"); 
JavaScriptCode.setAttribute('type', 'text/javascript'); 
JavaScriptCode.setAttribute("src", 'http://myDomain.com/content/'+wID); 
document.getElementById('myads'+wID).appendChild(JavaScriptCode); 

지금 문제는 보여되어 텍스트 영역 텍스트에

<!--Code Starts--><div id='myads28'></div><script async type='text/JavaScript' charset='utf-8' src='http://myDomain.com/content/28'></script><!--Code Ends--> 
상태인지

로컬 컴퓨터에서 테스트 할 때 올바르게 표시됩니다.

하지만 내 호스트 서버에서이를 볼 때 이와 비슷한 것을 보여줍니다.

<!--Code Starts--><script type='text/javascript'> wID= '28';document.write('<div id=myads28></div>');document.write('<scr'+'ipt type="text/JavaScript" src="http://myDomain.com/Create.js"></scr'+'ipt>');</script><!--Code Ends--> 

나는 무슨 일이 일어나고 있는지 이해할 수 없다.

내가 해결할 수 있도록 도와 줄 수 있습니다.

+0

'eval (document.getElementById ('codebox'). 값);'완료 및 완료;) – rlemon

+0

어디에 넣을 까? –

답변

0

자바 스크립트를 직접 텍스트 영역에 넣으므로 스크립트를 실행하는 대신 스크립트의 내용을 정확히 보여 주므로 사이트의 메모장 부분과 같습니다. 스크립트를 페이지에 쓰려면 텍스트 영역 외부에 배치하십시오. 또한 PHP를 사용하여 javascript가 여러 document.write()를 수행하는 대신 사이트에서 div를 배치하여 클라이언트에서 리소스를 확보 할 수 있습니다.

+0

나는이 튜토리얼을 사용하고있다 http://www.codeproject.com/Articles/81355/Chapter-5-Creating-Web-Widget-with-HTML-CSS-and-Ja 단지 텍스트 영역에 생성 된 코드를 보여주고 싶다. –

0

변수가 $x 인 것을 보시고, 여기 제안 해주십시오.

$id = $this->db->insert_id(); 
    $rootURL = $this->config->item('url'); 
    $x = <<<EOD 
<style> 
    #codeBox { 
     cursor: auto; 
     min-width: 643px; 
     min-height: 112px; 
     max-width: 643px; 
     max-height: 112px; 
     margin-left: 5px; 
    } 
</style> 
<input type="hidden" value="$id" name="hdn" id="hdn" /> 
<textarea id="codebox" readonly> 
    <div id="myads{$id}"></div> 
</textarea> 
<script src="{$rootURL}allJs/myJs.js"</script> 
EOD; 
    echo $x; 

두 번 나를 id="myads{$id}에서 확인하십시오. 귀하가 작성한 코드는 id="myads"1이 아니라 id="myads1"이 아닐 수 있습니다.

주로 스타일을 개선하고 <script ...><textarea> 외부로 이동했습니다. myJs.js에서

document.getElementById('codeBox').appendChild(JavaScriptCode); 

, 당신은 은 그래서
<div id="myads"><script></script></div>하지
<div></div><script></script>과 같을 것이다, <div id="myads">에 자식과 같은 요소를 추가하고 있습니다.

대신 요소를 <div id="codebox">에 추가하도록 변경했습니다. 당신이 <div id="codebox">의 내용을 하드 코딩하는 경우

은 또한 당신이 <script>를 삽입하기 위해 자바 스크립트를 필요로하지 않는 한 당신은, 아래의 변경 $x을 수정하는 것이, 그 제안한다.

<textarea id="codebox" readonly> 
    <div id="myads{$id}"></div> 
    <script async type='text/JavaScript' charset='utf-8' src='http://myDomain.com/content/{$id}'></script> 
</textarea> 

그래도 문제가 있으면 알려주세요.

관련 문제