Javascript скрипт для изменения источника изображения - PullRequest
0 голосов
/ 26 октября 2010

Я использую flexigrid для одного из моих проектов, и мне нужно найти способ изменить источник изображения в зависимости от значения одной из ячеек.Для людей, которые привыкли к flexigrid, у меня есть следующий код:

$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"; 
}

Я неуверен, где мне нужно вставить эту функцию и как ее вызвать.Любая помощь будет принята с благодарностью.

С уважением, Кристиан.

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 Ответ

1 голос
/ 26 октября 2010

Вы не должны использовать 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>") . "'";
...