Форум → Программирование → JavaScript → php таблицы + JavaScript
php таблицы + JavaScript
Страницы: ← Предыдущая страница →
-
-
Фев. 4, 2009, 12:15 п.п., спустя 21 час 43 минуты 14 секунд
Последний вопрос к уважаемым экспертам и можете закрывать, мне остался штрих доделать…
Что за ошибка: document.form1.[…].value есть null или не является объектом?
У меня два скрипта, один добавляет строку, другой считает, по нажатию сумму из добавленных td-шек и введенных в них данных.
В 1-м скрипте(добавление строк) нумерую td-шки:
var th_count = document.getElementsByTagName("th").length;
var tr_count = document.getElementsByTagName("tr").length;
var td_count = document.getElementsByTagName("td").length;
…
…
…
for (var i=td_count-th_count+1; i<td_count-2; i++) {
var y2=x.insertCell(1)
y2.innerHTML="<input type=text name=a"+i+">"} //Нумеруем td-шки
Вроде бы не жалуется…
А вот во втором не может прочитать, возмущаясь ошибкой…
var th_count = document.getElementsByTagName("th").length;
var tr_count = document.getElementsByTagName("tr").length;
var td_count = document.getElementsByTagName("td").length;
…
…
…
for (var i=td_count-th_count+1; i<td_count-2; i++) {
item = parseFloat(document.form1["a"+i].value); //Здесь жалуется… вроде все так же как и в первом скрипте
item1 = item1+item};
itog = item1/exp;
document.form1["s"+kesh].value = itog;
Никак не могу багу зафиксить, заранее спасибо! -
Фев. 4, 2009, 12:21 п.п., спустя 5 минут 39 секунд
попробуйy2.innerHTML="<input type=text id='a"+i+"' />";
alert("a"+i);
иdocument.getElementById("a"+i).value
alert("a"+i);
и сравни :) -
Фев. 4, 2009, 12:28 п.п., спустя 7 минут 22 секунды
попробуйy2.innerHTML="<input type=text id='a"+i+"' />"
иdocument.getElementById("a"+i).value
Обращается к строке:
document.getElementById("a"+i).value
и пишет: Требуется объект -
-
Фев. 4, 2009, 12:36 п.п., спустя 3 минуты 43 секунды
Вот весь код, и две функции(скрипта). Смысл в том, что для каждой строки своя сумма, я думаю это понятно)
function addRow(tblId)
{
var th_count = document.getElementsByTagName("th").length;
var tr_count = document.getElementsByTagName("tr").length;
var td_count = document.getElementsByTagName("td").length;
var x=document.getElementById('tblSample').insertRow(-1)
var y1=x.insertCell(0)
y1.innerHTML=tr_count;
for (var i=td_count-th_count+1; i<td_count-2; i++) {
var y2=x.insertCell(1)
y2.innerHTML="<input type=text id='a"+i+"' />";}
var y3=x.insertCell(th_count-2)
y3.innerHTML="<input type=button name=s"+tr_count+" onclick=Itog('tblSample')>"
var y4=x.insertCell(th_count-1)
y4.innerHTML="<input type=text name=color>"
}
function Itog(tblId)
{
var th_count = document.getElementsByTagName("th").length;
var tr_count = document.getElementsByTagName("tr").length;
var td_count = document.getElementsByTagName("td").length;
var item;
var item1;
var kesh;
item1 = 0;
exp = th_count-3;
kesh=td_count/th_count;
for (var i=td_count-th_count+1; i<td_count-2; i++) {
item = parseFloat(document.getElementById("a"+i).value);
item1 = item1+item};
itog = item1/exp;
document.form1["s"+kesh].value = itog;
if (itog>=0.5){
document.form1.color.value = "Допустимый";
document.form1.color.style.backgroundColor = "yellow"};
if (itog<0.5){
document.form1.color.value = "Критический";
document.form1.color.style.backgroundColor = "red"};
if (itog>=1.5){
document.form1.color.value = "Эффективный";
document.form1.color.style.backgroundColor = "green"};
} -
Фев. 4, 2009, 12:38 п.п., спустя 1 минуту 50 секунд
ты мне предлагаешь ещё html для этого написать? сохрани страничку или выложи где нибудь -
Фев. 4, 2009, 12:39 п.п., спустя 1 минуту 24 секунды
ты мне предлагаешь ещё html для этого написать? сохрани страничку или выложи где нибудь
Вот Html, сорри…
<?
session_start();
$_SESSION['exp']=3;
?>
<html>
<head>
<script type="text/javascript" src="functions.js"></script>
</head>
<body>
<form name="form1">
<p>
<input type="button" value="Добавить вопрос" onclick="addRow('tblSample')" />
<input type="button" value="Подсчитать" onclick="Itog('tblSample')" />
</p>
<table id="tblSample" border="1">
<thead>
<tr>
<th>Вопросы</th>
<?
for ($i=1;$i<=$_SESSION['exp'];$i++){
echo '<th>Эксперт '.$i.' </th>'; }
?>
<th>Сумма</th>
<th>Вывод</th>
</tr>
</thead>
</table>
</form>
</body>
</html> -
Фев. 4, 2009, 12:51 п.п., спустя 11 минут 6 секунд
поставь фаербаг у тебя первые td вообще нумеруються "a-5", "а-4" Видимо 0 не учитываешь. гдето в мат части ошипку исчи :) -
Фев. 4, 2009, 12:59 п.п., спустя 8 минут 33 секунды
поставь фаербаг у тебя первые td вообще нумеруються "a-5", "а-4" Видимо 0 не учитываешь. гдето в мат части ошипку исчи :)
Знаю, но форы вроде и там и там одни и те же, должно было по сути правильно искать… Странно…
Ладно, буду дальше мучать яву)) -
Фев. 4, 2009, 1:59 п.п., спустя 1 час 1 секунду
Ну какже правильно, когда ты в одной функции добавляешь td, а в другой считаешь тоже самое, но не учитываешь что уже добавил
поставь фаербаг у тебя первые td вообще нумеруються "a-5", "а-4" Видимо 0 не учитываешь. гдето в мат части ошипку исчи :)
Знаю, но форы вроде и там и там одни и те же, должно было по сути правильно искать… Странно…
Ладно, буду дальше мучать яву)) -
Фев. 5, 2009, 10:10 д.п., спустя 20 часов 10 минут 58 секунд
Все всем спасибо! Вопрос окончательно снят) Задача выполнена!
Для решения ввел hidden поля, с данными о номерах td-шек и кол-ве экспертов.
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!