2014-04-02 98 views
0

無法從函數中的變量獲取正確的值。從javascript函數的外部獲取變量值

這裏是我的代碼,我總是把id變成「two」,我需要正確的值,我通過改變函數。

<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

您應該發佈*呈現的* html代碼。這樣的混合的PHP/JavaScript幾乎不是一個好主意。 – Yoshi

+0

它看起來像你嘗試混合使用客戶端和服務器端代碼。無論您的目標如何,這都是一個糟糕的主意。 – jslayer

+0

許多應用程序都是客戶端和服務器代碼的混合。但是他們是由知道服務器和客戶端正在發生什麼的工程師編寫的。 – Paul

回答

1

你混合server-side-scriptclient-side-script嘗試在javascript一樣,

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

<input type="button" onclick="change();" value="Change"> 
<div class="changed_value"></div> 

Live Demo

+0

感謝您的快速回復,我需要在HTML代碼打印「VAL」價值就像

user3356107

+1

我嘗試更新的答案,'demo' –

+0

真的謝謝你,它的工作.. – user3356107

1

好PHP代碼執行獨立的JavaScript代碼,這是隻有在客戶端之後執行。所以,你的腳本做在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"> 

所以,如果你想改變你必須做的一個元素在Javascript中:

<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未初始化,因爲它在原始問題中。但是,這是無效的。 是的,我也有一個獨特的選擇器爲更改元素(也許是一個類)。 我也看不到如何改變ID可能是有用的... – nedt

+0

非常感謝,它有助於和工作。 – user3356107

相關問題