2014-04-02 5 views
0

함수에서 변수의 올바른 값을 가져올 수 없습니다.자바 스크립트 함수 외부에서 변수 값 가져 오기

여기 내 코드는 항상 "2"로 ID를 얻고 있습니다. 올바른 값을 입력해야 함수를 변경해야합니다.

<script type="text/javascript"> 
<?php 
    $val=''; 
    global $val; 
?> 


function change(val){ 
    <?php //global $val;?> 
     if (val=='one') { 
     <?php $val='one';?> 
     } 
     if (val=='two') { 
      <?php $val='two';?> 
     } 
} 
</script> 
<input type="button" onclick="change('one');" value="Change"> 

<div id="<?php echo $val;?>"> 
+0

* rendered * html 코드를 게시해야합니다. php/javascript의 이러한 혼합은 거의 좋은 아이디어가 아닙니다. – Yoshi

+0

클라이언트 및 서버 측 코드를 사용하여 혼합하려고 시도한 것 같습니다. 이것은 당신의 목표에 상관없이 정말 나쁜 생각입니다. – jslayer

+0

많은 앱은 클라이언트와 서버 코드가 혼합되어 있습니다. 그러나 그들은 서버와 클라이언트에서 무슨 일이 일어나고 있는지 알고있는 엔지니어들에 의해 작성되었습니다. – Paul

답변

1

SCRIPT

<script type="text/javascript"> 
    var val='one'; // global value 
    function change(){ 
     if (val=='one') { 
      // your code for one 
      val='two'; // change the value of val to two 
     } 
     else if (val=='two') { 
      // your code for two 
      val='one'; // again change val value 
     } 
     document.getElementsByClassName('changed_value')[0].id=val; 
     document.getElementById(val).innerHTML=val; 
    } 
</script> 

HTML

, 당신은 server-side-script 혼합하고 client-side-script 같은 javascript에서 그것을 시도

Live Demo

+0

덕분에 빠른 응답을, 난 내 업데이트 된 대답을 시도하고

user3356107

+1

같은 HTML 코드에 "발"값을 인쇄해야' –

+0

정말 감사합니다, 그 작업 .. – user3356107

1

0 그럼 PHP 코드는 클라이언트 측에서 이후에 실행되는 자바 스크립트 코드를 독립적으로 실행. 그래서 스크립트가하는 일은 PHP에서 이것을 실행 :

<?php 
global $val; 
$val='one'; 
$val='two'; 
?> 
<!-- ... --> 
<div id="<?php echo $val;?>"> 

을이 클라이언트 측 코드입니다 : 그래서 당신은 당신이 그것을해야 할 것이다 요소를 변경하려는 경우

<script type="text/javascript"> 
    function change(val){ 

     if (val=='one') { 
     } 
     if (val=='two') { 
     } 
    } 
</script> 
<input type="button" onclick="change('one');" value="Change"> 

자바 스크립트 :

<script type="text/javascript">  
    function change(val){ 
     var el = document.getElementsByTagName('div')[0]; 

     if (val=='one') { 
     el.id = 'one'; 
     } 
     if (val=='two') { 
     el.id = 'two'; 
     } 
    } 

</script> 
<input type="button" onclick="change('one');" value="Change"> 

<div id=""> 
+0

유효한 HTML ID가 있습니까? 그것을 하나 또는 다른 것으로 만들고,'document.getElementById'를 사용하는 것이 더 좋을까요? – Paul

+1

원래 변경 사항을 적용했기 때문에 변경 사항을 작게 유지하고 초기화하지 않았습니다. 하지만 네, 그건 무효입니다. 예, 변경된 요소 (아마도 클래스)에 대한 고유 한 선택기가 있습니다. 또한 ID를 변경하는 것이 유용 할 수 있음을 알지 못합니다. – nedt

+0

감사합니다. 도움이되고 도움이됩니다. – user3356107

관련 문제