Всем добрый вечер =) Ребят подскажите пожалуйста, что делаю не так.
Ситуация в целом:
есть бд, в которой находится таблица
на страницу выводится так же табличка, в которую пользователь должен ввести данные, а они соответственно передаться в бд
табличку вывожу таким вот образом:
<table class="bordered" id="js_table" border="1">
<th> </th>
<?
$sql=mysql_query("select * from $table");
$num = mysql_num_fields($sql);
for ($i = 1; $i <$num; $i++)
{
echo "<th>".mysql_field_name($sql, $i)."</th>";
}
//выводим столько строк, сколько найдем в таблице из бд
while($row=mysql_fetch_array($sql))
{
?>
<tr id="<?echo $row['id']; ?>" class="edit_tr">
<td><? echo $row['id']; ?></td>
<?
//выводим столбцы
for ($i=1; $i <$num; $i++) {
$result = mysql_query("select Name from Table1 where id = '$i'"); //получаем ФИО
$shef = mysql_fetch_array($result); //обрабатываем полученные данные
$temp = $shef['Name'];
?>
<td >
<input type="text" value="<?php echo $row[$temp]; ?>" class="editbox_input" id="first_input_<?php echo $i ?>"/>
</td>
<td style="display:none;" >
<input class="table_ajax" type="text" value="<?php echo $table; ?>" class="editbox_input" id="table_input_<?php echo $i ?>"/>
</td>
<td style="display:none;" >
<input class="table_ajax" type="text" value="<?php echo $temp; ?>" class="editbox_input" id="namestolb_input_<?php echo $i ?>"/>
</td>
<?//конец for
}
//и так делаем для каждой строчки которую выводим (цикл while)
?>
</tr>
<?//конец while
}?>
</table>
В табличке использую в т.ч. 2 скрытых дива, т.к. в итоге они мне нужны для sql запроса, который обновит соответствующую ячейку в таблице из бд
результаты уходят в temp.js, где обрабатываются и с помощью ajax передаются в файл, с sql запросом на обновление таблицы
temp.js
$(document).ready(function()
{
$(".edit_tr").click(function()
{
var ID=$(this).attr('id');
$("#first_input_"+ID).show();
$("#table_input_"+ID).show();
$("#namestolb_input_"+ID).show();
}).change(function()
{
var ID=$(this).attr('id');
var first=$("#first_input_"+ID).val();
var table=$("#table_input_"+ID).val();
//textId = encodeURI(document.getElementById('id').value);
//var namestolb=textId;
var namestolb=$("#namestolb_input_"+ID).val();
dataString = 'id='+ ID +'&firstname='+first+'&table='+table+'&namestolb='+namestolb ;
$.ajax({
type: "POST",
url: "todb.php",
data: dataString,
cache: false,
success: function(html)
{
$("#first_"+ID).html(first);
$("#table_"+ID).html(table);
$("#namestolb_"+ID).html(namestolb);
}
});
});
});
В итоге введя данные в ячейку таблицы я получаю корректно id, имя таблицы, а вот с самим значением и номером столбца беда..
я не могу в post получить корректные данные о столбце, в котором редактировалась ячейка и сами данные, которые были введены.
Если делать так
<input class="table_ajax" type="text" value="<?php echo $temp; ?>" class="editbox_input" id="namestolb_input_<?php echo $i ?>"/>
То введя данные например в 3 строку 4 столбец - получаю имя столбца 3 (т.е. по ид строки)
Значение '&firstname=' (т.е. сами введенные данные) остается вобще пустым.
Передается оно только, если введено в 1-м столбце
Если сделать так
<input class="table_ajax" type="text" value="<?php echo $temp; ?>" class="editbox_input" id="namestolb_input_<?php echo $row['id'] ?>"/>
то значение '&namestolb=' всегда = ид 1 столбца, куда бы не вводились данные, а
'&firstname=' фигурирует опять же, только если введено в первом столбце
Пробовал экспериментировать с атрибутом .attr() - пытаясь получить напрямую нужное значение, но неизменно получаю unendefined в запрос
Пробовал подставлять этозначение в ид (наименование самого столбца) но получаю тот же ответ - такого атрибута нету у указанного элемента
Кажется перепробовал все уже, но конечно же это не так, не буду жаловаться на неопытность, по коду это и так видно. Буду рад любой подсказке или помощи. Заранее спасибо =)