2010-10-26 52 views
0

我使用flexigrid为我的项目之一,我需要想出一种方法来改变图像源取决于其中一个单元格的值。对于使用谁的人flexigrid,我有以下代码:JavaScript脚本来改变图像的来源

$json .= ",'".addslashes("<span><img src='' id='flag' />" . $row['availability']. "</span>")."'"; 

和我的javascript,我已经拿出,看起来是这样的:

<script type="text/javascript"> 
var available = "<?php echo '$row[availability]' ?>"; 

if (available == 0) { 
document.getElementById('flag').src="images/flag_red.png"; 
} 
elseif (available == 1) { 
document.getElementById('flag').src="images/flag_green.png"; 
} 
else { 
document.getElementById('flag').src="images/flag_orange.png"; 
} 

我不知道,我需要插入此功能以及如何触发它。任何帮助将不胜感激。

Regards, Cristian。

LE:哪里出了问题被报告的代码:

url: 'post2.php', 
      dataType: 'json', 
      colModel : [ 
       {display: 'ID', name : 'id', width : 40, sortable : true, align: 'center', hide: true}, 
       {display: 'URL', name : 'url', width : 450, sortable : false, align: 'left'}, 
       {display: 'File Name', name : 'filename', width : 270, sortable : true, align: 'left'}, 
       {display: 'Availability', name : 'availability', width : 50, sortable : true, align: 'center'}, 
       {display: 'State', name : 'state', width : 40, sortable : true, align: 'center'}, 
       {display: 'Total Size', name : 'totalsize', width : 90, sortable : false, align: 'center'}, 
       {display: 'Current Size', name : 'currentsize', width : 90, sortable : false, align: 'center'}, 
       {display: 'Procent', name : 'procent', width : 40, sortable : true, align: 'center'}, 
       {display: 'Log', width : 20, sortable : false, align: 'center'}, 
       ], 
      buttons : [ 
       {name: 'Add', bclass: 'add', onpress : test}, 
       {separator: true}, 
       {name: 'Delete', bclass: 'delete', onpress : test}, 
       {separator: true}, 
       {name: 'Select All', bclass : 'selectall', onpress : test}, 
       {name: 'DeSelect All', bclass : 'deselectall', onpress : test}, 
       {separator: true} 
       ], 
      searchitems : [ 
       {display: 'URL', name : 'url'}, 
       {display: 'Filename', name : 'filename', isdefault: true} 
       ], 
      sortname: "state", 
      sortorder: "asc", 
      usepager: true, 
      title: '', 
      useRp: false, 
      rp: 5, 
      showTableToggleBtn: true, 
      } ----- **IE says there is a problem here**  ); 
}); 

回答

1

你不应该使用JavaScript这一点,你可以直接在现有的PHP线做。

$json .= ",'" . 
     addslashes("<span><img src='" . 
     ($row['availability'] == 0 ? "images/flag_red.png" : 
      ($row['availability'] == 1 ? "images/flag_green.png" : 
       "images/flag_orange.png") 
     ) . 
     "' id='flag' />" . $row['availability'] . "</span>") . "'"; 
+0

简单而有效。谢谢,Fosco ......非常感谢。我每天都会学习一件新事物,我喜欢它。干杯,C。 – Chris19 2010-10-26 13:33:50

+0

测试了旧版浏览器IE 7.0.53中的代码,并且不工作,导致javascript中的错误,预期的标识符,字符串或数字flexigrid,第63行第4个字符,位置指出的是配置的位置桌子正在关闭。如果我删除了代码,没有问题。 – Chris19 2010-10-26 13:49:50

+0

@ Chris19我想这是一个单独的问题..是flexigrid与该版本的IE?兼容?正如你所知,这个解决方案不涉及JavaScript。 – Fosco 2010-10-26 13:51:03