2012-11-26 16 views
-1

修改JavaScript代碼,以及我有這樣的javascript代碼:用ajax

<div id="change"> 
    <script> 
     var change=0; 
    </script>  
</div> 

,我使用Ajax來更新它。事實上,當我更新我的數據庫中,我要改變的變量「變化」值1:

function update(value,username,competency) 
{ 

    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("updateAll").innerHTML=xmlhttp.responseText; 
     document.getElementById("change").innerHTML='<script >var change=1</script> '; 
     } 
    }; 
    xmlhttp.open("GET","Update_evaluation_ajax.php?value="+value+"&username="+username+"&competency="+competency,true); 
    xmlhttp.send(null); 
} 

你能幫助我弄清楚爲什麼這不起作用?與innerHTML添加

+0

的[設置innerHTML內部具有腳本](http://stackoverflow.com/questions/11694977/setting-innerhtml-with-a-script-inside) – Quentin

+0

我試圖document.getElementsByTagName(「腳本」可能重複)[4] .innerHTML ='var change = 1'; – ader277

+0

var script = document.createElement('script'); 腳本[(script.innerText ===未定義 「的textContent」?: 「的innerText」)] = '變化= 1;'; document.body.appendChild(script);不起作用 – ader277

回答

1

<script>標籤不執行。

爲什麼不設置change = 1而不是設置innerHTML?它看起來像change是一個全局變量,所以你可以從任何地方改變它。

+0

我試過了,不行! – ader277

+0

它不起作用? –

+1

window.change = 1? – jonBreizh

0

當執行您的初始<script>標籤,它會創建一個全局變量change,可以通過window.change訪問。

想必你希望在你的代碼的其他地方使用change變量。如果沒有看到這些代碼很難提出一個很好的解決方案,但你可以簡單地設置window.change你內心響應函數而這執行任何後續的代碼將使用更新後的值(取決於範圍):

function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
    { 
    document.getElementById("updateAll").innerHTML = xmlhttp.responseText; 
    window.change = 1; 
    } 
}; 

當然全局變量是不好的,但這超出了這個答案的範圍。

+0

確定我確實找到了問題:我在做什麼,如果(其他城市== 1){ window.onbeforeunload =功能(E){VAR é= E || window.event; // IE和Firefox 如果(E){ e.returnValue = '你確定嗎?'; } //對於Safari瀏覽器 回報 '你確定嗎?'; }; }但是我不得不這樣做:window.onbeforeunload =函數(E){如果(變化== 1) { 變種E = ||ë窗口。事件; // IE和Firefox 如果(E){ e.returnValue = '你確定嗎?'; } //對於Safari瀏覽器 回報 '你確定嗎?'; }; } – ader277