2014-02-07 134 views
0
function listUsers(profil) { 
    alert("type "+typeof(profil)); 
    switch (profil.toUpperCase()) { 
     case "DGA": 
      document.getElementById("id_importeur").innerHTML = "<?php echo $html_DGA; ?>"; 
      break; 
     case "INDUSTRIEL": 
      document.getElementById("id_importeur").innerHTML = "<?php echo $html_indus; ?>"; 
      break; 
     default: 
      alert("<?php echo plugin_lang_get("profil_err_users"); ?>"); 
    } 
} 

字符串出于某种原因开关,使用此代码不能正常工作 - JavaScript的其实没有精确的负载(这是一个片段,我在window.onload()功能使用alert()只有这个功能使它不显示)。麻烦与在JavaScript

如果我评论这两种情况(但不是默认值),它的作品。如果我评论这些案件的内容(document.getElementById()陈述),则不起作用。

如果我使用if语句尝试相同的构造,它的工作原理并不是来自案例的内容,而是案例本身。

我不知道我在做什么错误,因为我检查参数profil类型,它是一个字符串。我在我的情况下使用双引号(用单引号测试),并且在这里看不到一个语法错误,导致JavaScript不加载。

+3

请浏览器中查看源,告诉我们什么是放在那里的''和'<?php echo $ html_indus; ?>'。问题可能在某处。 – JLRishe

+0

你知道如何查看是否有Javascript错误?如果你写“甚至没有加载”,它显示哪个错误? Chrome>三明治图标>工具> Javascript控制台或Firefox> Firebug图标>控制台选项卡。 – virtualnobi

+0

问题确实来自PHP:字符串包含'select'的'

回答

1

一旦你删除这些PHP部件似乎工作。我还在默认情况下添加了一个break语句。我很确定你的PHP插入了打破JS代码的文本。

http://jsfiddle.net/bbW25/

var idImp = document.getElementById("id_importeur"); 
function listUsers(profil){ 
switch(profil.toUpperCase()){ 
    case "DGA": 
    idImp.innerHTML = "DGA"; 
    break; 
    case "INDUSTRIEL": 
    idImp.innerHTML = "INDUS"; 
    break; 
    default: 
    idImp.innerHTML = "profil_err_users"; 
    break; 
} 
}