Всем привет есть код Код (Text): echo "<table border='1'> <tr><td align='center'>Раздел</td> <td align='center'>Подраздел</td> <td align='center'>Товар</td> <td align='center'>Описание</td> <td align='center'>Цена</td> <td align='center'></td> </tr>"; и JavaScript Код (Text): <script type="text/javascript"> $(function() { $('td').click(function(e) { //ловим элемент, по которому кликнули var t = e.target || e.srcElement; //получаем название тега var elm_name = t.tagName.toLowerCase(); //если это инпут - ничего не делаем if(elm_name == 'input') {return false;} var val = $(this).html(); var code = '<input type="text" id="edit" value="'+val+'" />'; $(this).empty().append(code); $('#edit').focus(); $('#edit').blur(function() { var val = $(this).val(); $(this).parent().empty().html(val); }); }); }); $(window).keydown(function(event){ //ловим событие нажатия клавиши if(event.keyCode == 13) { //если это Enter $('#edit').blur(); //снимаем фокус с поля ввода } }); </script> как при потере фокуса сохранить в базе данных код выводит таблицу скрипт дает возможность исправить данные но как занести в sql таблицу не пойму предполагаю надо вставить в скрипт что то типа Код (Text): $.ajax({ type: "POST", url: "/savedoc.php", data: "data="+data, success: function(html) { $("#edited").append(html); а как не пойму и что в savedoc.php написать то
Код (PHP): $('#edit').blur(function() { $.post('savedoc.php',{ data:data },function(html) { $("#edited").append(html); }); }); http://api.jquery.com/jquery.post/
это я понял передача выбранного значения а как определить к какому столбцу и строчке присвоилось что бы сохранить в базе данных
Ты должен при выводе таблицы где-то не обязательно явно но обязательно в каждую строку впихнуть праймари кей или иной уникальный индекс. Логично будет впихнуть его в ближайший tr в дата-аттрибут <tr data-id="73">. Соотв из любой ячейки он будет доступен через $(this).parent().data('id') например.
пытаюсь сделать типа морского боя while($row = mysql_fetch_array($res)){ echo "<tr><td data-id='A".$row['id']."'>".$row['razdel']."</td>"; echo "<td data-id='B".$row['id']."'>".$row['podrazdel']."</td>"; echo "<td data-id='C".$row['id']."'>".$row['tovar']."</td>"; echo "<td data-id='D".$row['id']."'>".$row['opisanie']."</td>"; echo "<td data-id='E".$row['id']."'>".$row['prais']."</td>"; echo "</tr>"; } а потом определить например А5, В3 и т.д. или не так не понимаю
не понимаю давай вопрос уточню есть таблица которая собирается из базы данных нужно что бы когда я поменял данный в полученной таблице при потере фокуса скриптом Код (Text): <script type="text/javascript"> $(function() { $('td').click(function(e) { //ловим элемент, по которому кликнули var t = e.target || e.srcElement; //получаем название тега var elm_name = t.tagName.toLowerCase(); //если это инпут - ничего не делаем if(elm_name == 'input') {return false;} var val = $(this).html(); var code = '<input type="text" id="edit" value="'+val+'" />'; $(this).empty().append(code); $('#edit').focus(); $('#edit').blur(function() { var val = $(this).val(); $(this).parent().empty().html(val); }); }); }); $(window).keydown(function(event){ //ловим событие нажатия клавиши if(event.keyCode == 13) { //если это Enter $('#edit').blur(); //снимаем фокус с поля ввода } }); </script> данные в базе по факту тоже правились сразу же что брать отсюдова и передать в файл который обработает (обновит данные в таблице) и как это сделать
что не понимаешь - спрашивай. или я могу перенести тему в "сделайте за меня" где она и умрёт счастливо
Вот до чего дошел index.php Код (Text): <head> <link rel="stylesheet" type="text/css" href="style.css" /> <script src="jquery.js" type="text/javascript"></script> <script> $(document).ready(function(){ $('td.edit').click(function(){ if($('#editbox').length>0) {return false} $('.ajax').html($('.ajax input').val()); $('.ajax').removeClass('ajax'); $(this).addClass('ajax'); $(this).html('<input id="editbox" size="'+$(this).text().length+'" type="text" value="' + $(this).text() + '">'); $('#editbox').focus(); } ); $('td.edit').keydown(function(event){ arr = $(this).attr('class').split( " " ); if(event.which == 13) { $.ajax({ type: "POST", url:"config.php", data: "value="+$('.ajax input').val()+"&rownum="+arr[2]+"&field="+arr[1], success: function(data){ $('.ajax').html($('.ajax input').val()); $('.ajax').removeClass('ajax'); }}); } } ); $('#editbox').live('blur',function(){ $('.ajax').html($('.ajax input').val()); $('.ajax').removeClass('ajax'); }); }); </script> </head> <body> <table cellpadding="15"> <tr> <th>Номер</th> <th>Цена</th> </tr> <? include('config.php'); $result = get_data(); while($rows = mysql_fetch_array($result)) { echo '<td>'.$rows["id"].'</td> <td class="edit price '.$rows["id"].'">'.$rows["prais"].'</td> </tr>'; } ?> </table> </body> </html> config.php Код (Text): <? include '../baza.tpl'; /*Проверка, все ли данные из браузера*/ if(isset($_POST['rownum'])) { update_data($_POST['field'],$_POST['value'],$_POST['rownum']); } /*Извлечение записей из БД*/ function get_data() { $sql = "select * from tovar"; $rs = mysql_query($sql); return $rs; } /*Обновление записей в БД*/ function update_data($field, $data, $rownum) { $sql = "update tovar set ".$field." = '".$data."' where id = ".$rownum; mysql_query($sql) or die("Couldn't connect to db"); } ?> чувствую что где-то рядом в базе не сохраняет что не так?
ну если у тебя хром допустим или там фф, то тыкаешь правой кнопкой и в меню выбираешь Inspect Element, дальше на вкладке network будут логироваться все запросы. можно тыкнуть в него и увидеть все заголовки запроса, ответа, и самое тело.
нене ты должен сам определить, попал ли запрос туда куда надо и ответил ли скрипт то, что требуется. я ж не знаю задумки. твой код я не хочу читать =)