Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Вывод результата тестирования на PHP+JS


Автор: Argument 5.8.2010, 14:24
Cуть в следующем. На сайте есть тестирование. после того как пользователь прошел тестирование, результаты (в виде кол-ва правильных ответов) заносятся в таблицу БД Mysql. Затем необходимо вывести данные из базы на экран в виде таблицы (Login, email, кол-во прав. ответов (test_a)). Однако последнее нужно вывести не просто в виде числа, а в виде картинки 
(закрашеной полоски), которая будет заполнять ячейку таблицы на соответствующий процент правильных ответов. К примеру, в тестировании 20 вопросов, пользователь ответил верно на 10, значит на экран нужно вывести наполвниу закрашеную ячейку; 15 прав. ответов - на 3/4 закрашеную и тд. Код, который выводит таблицу с test_a в виде числа, приведен ниже.

Код

require_once ("../config.php");

$query = "SELECT * FROM `users`";
$result = mysql_query($query);
$num_rows = mysql_num_rows ($result);

echo "<table  width = '54%' align = 'center' border = '1'>
<tr>
    <td width = '18%' align = 'center'>id, E-mail</td>
    <td width = '18%' align = 'center'>Количество правильных ответов</td>
</tr>";

for ($i = 1; $i <= $num_rows; $i++)
{
    while ($row = mysql_fetch_array ($result))
    {
        echo "<tr><td width = '18%' align = 'center'>{$row['id']}. {$row[email]}</td>
        <td width = '18%' align = 'center'>{$row['test_a']}</td>
    }
}
echo "</table>";

Также с помощью JS я загружаю изображение, которое и должнно быть индикатором результата теста (обычный закрашеный прямоугольник).
Код

<img src = "123.png" name = 'picture'>
<script>
document.images["picture"].width=a; 
document.images["picture"].height=15;
</script>

Вот как раз параметр "а" и должен изменяться для каждого результата (это я так думаю). Возможно я делаю совсем не так, но в этом и вопрос: как сделать чтобы для каждого результата тестирования "полоска-индикатор" была различной.

Автор: CruorVult 5.8.2010, 14:33
как-то так:
Код

echo "<div styles='background-color:green;width:".$row['test_a']*5."px;height:15px;'></div>"

Автор: Argument 5.8.2010, 16:14
CruorVult,  Спасибо за ответ! С <div ...> действительно работает, но мне нужно чтобы это было внутри таблицы, т.е. как то так:
Код

<td style='background-color:#cccccc;width:".($row[test_a]*5)."px;height:15px;'>{$row[test_a]}</td>
  
Но данный вариант не работает: все ячейки заполянются полностью, вне знависимости  от значения test_a, т.е. кол-ва правильных ответов.

Автор: CruorVult 5.8.2010, 16:35
Цитата(Argument @  5.8.2010,  16:14 Найти цитируемый пост)
но мне нужно чтобы это было внутри таблицы

так а что мешает div запихнуть в td

Автор: Argument 5.8.2010, 16:40
CruorVult, Готово! Благодарю!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)