2010-10-26 53 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