Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2014, 22:49   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну так добавь теперь в каждую клетку примерно такое:
Код:
<td onclick="foo(this)">
И сама функция в head
Код:
function foo(me){
 me.value="<input value='"+me.innerHTML+"' keypress='fookey(this,event)'>";
}
Тогда при клике в ячейку в ней появится Эдит. Потом опиши его обработчик:
Код:
function fookey(me,e){
    var keynum=0;
	if(!e) return false;
	if(window.event){keynum = e.keyCode} else if(e.which){keynum = e.which}
 if(keynum==13){
  Посылать на сервак me.value;
  me.parentNode.innerHTML=me.value;
 }
}
Вот примерно так...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 23:16   #12
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

простой способ представления данных на пыхе пыхом

Код:
function display($template, $data = [])
{
  extract($data);
  include $template;
}
datatable_template.php

Код:
<!-- тут всякие html, head, body, метатеги и т.д. -->
<table>
  <?php foraech($rows as $row){?>
    <tr class="dataRow">
      <?php foraech($row as $col){ ?>
        <td><?php $col; ?></td>
      <?php } ?>
    </tr>
  <?php } ?>
</table>
<!--тут все закрывается-->
соответственно где-то в коде:

Код:
display("datatable_template.php", ["rows" => $db->fetchAll(), "table" => "myTable"]);
Теперь можно показывать данные полученные из любой таблицы.
Дальше нужно немного js скриптов, пройтись по всем dataRow, и на td повешать double click по которому будет появляться <input> с содержимым этой ячейки, а на этот input событие blur по которому с помощью ajax отправить данные в соответствующий php файл и убрать input, а его содержимое записать обратно в ячейку.
Дальше соответствующие php'шки:

Код:
insert.php
update.php
delete.php
в них передаешь имя таблицы и собранные значения полей и выполняешь sql

Код:
$.ajax({
type: "POST",
url: "update.php",
data: { table: "myTable", id:"1", col1:"qwerty"}
})
Ну вот как-то так =)

Писал как есть, ничего не проверял, с шаблоном на php осторожно, никогда еще так сам не делал =)

Последний раз редактировалось Kostia; 01.07.2014 в 00:41.
Kostia вне форума Ответить с цитированием
Старый 30.06.2014, 23:41   #13
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Stilet, спасибо за разъяснение, ниже пример как я вывожу данные таблицы:

Код:
<?php 

$db = mysql_connect("localhost", "Dux", "myQFC2FDPxYSyfRn");
Mysql_select_db("fpmanager",$db);

$sql = mysql_query("SELECT * FROM data",$db);

$table = "<table border='1' cellspacing='3' cellpadding='3'>";
  while ($row = mysql_fetch_assoc($sql))
   {
       $table .= "<tr>";
       $table .= "<td>".$row['id']."</td>";
       $table .= "<td>".$row['Name']."</td>";
       $table .= "<td>".$row['Client']."</td>";
	   $table .= "<td>".$row['Address']."</td>";
       $table .= "</tr>";
    }
       $table .= "</table> ";
      echo $table;

?>
Подскажите пожалуйста как именно добавлять код в клетки?

Код:
<td onclick="foo(this)">
Добавил

И сама функция в head
Код:
function foo(me){
 me.value="<input value='"+me.innerHTML+"' keypress='fookey(this,event)'>";
}
Добавил, но почему то весь текст функции отображается при выполнении

Тогда при клике в ячейку в ней появится Эдит. Потом опиши его обработчик:- а эту функцию куда поместить?
Код:
function fookey(me,e){
    var keynum=0;
	if(!e) return false;
	if(window.event){keynum = e.keyCode} else if(e.which){keynum = e.which}
 if(keynum==13){
  Посылать на сервак me.value;
  me.parentNode.innerHTML=me.value;
 }
}
Пока не ясно

Последний раз редактировалось Stilet; 01.07.2014 в 07:46.
Dux вне форума Ответить с цитированием
Старый 01.07.2014, 00:15   #14
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Цитата:
ниже пример как я вывожу данные таблицы:
а где теги <html><head><body> ... ?

Цитата:
Потом опиши его обработчик:- а эту функцию куда поместить?
Ее нужно либо в тег <script> запихать, либо подключить к страничке отдельным файлом.
Код:
<script type="text/javascript">
  function hello(){
    return "hello";
  }
  alert(hello() + ", world!");
</script>
вариант с подключением файла:

Код:
<script src="main.js" type="text/javascript"></script>
Kostia вне форума Ответить с цитированием
Старый 01.07.2014, 00:24   #15
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Вот полный текст:

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>DB.test</title>

function foo(me){
 me.value="<input value='"+me.innerHTML+"' keypress='fookey(this,event)'>";
}

function fookey(me,e){
    var keynum=0;
	if(!e) return false;
	if(window.event){keynum = e.keyCode} else if(e.which){keynum = e.which}
 if(keynum==13){
  //Посылать на сервак me.value;
  me.parentNode.innerHTML=me.value;
 }
}
</head>

<body>
<?php 

/* Подключение к базе данных */
$db = mysql_connect("localhost", "Dux", "myQFC2FDPxYSyfRn");
Mysql_select_db("fpmanager",$db);

$sql = mysql_query("SELECT * FROM data",$db);

$table = "<table border='1' cellspacing='3' cellpadding='3'>";
  while ($row = mysql_fetch_assoc($sql))
   {
       $table .= "<tr>";
       $table .= "<td onclick='foo(this)'>".$row['id']."</td>";
       $table .= "<td>".$row['Name']."</td>";
       $table .= "<td>".$row['Client']."</td>";
	   $table .= "<td>".$row['Address']."</td>";
       $table .= "</tr>";
    }
       $table .= "</table> ";
      echo $table;

?>
</body>

</html>
Может подправите, а то я уже окончательно запутался. С Java Script не работал никогда.
Dux вне форума Ответить с цитированием
Старый 01.07.2014, 00:26   #16
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Код:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>DB.test</title>
<script>
function foo(me){
 me.value="<input value='"+me.innerHTML+"' keypress='fookey(this,event)'>";
}

function fookey(me,e){
    var keynum=0;
	if(!e) return false;
	if(window.event){keynum = e.keyCode} else if(e.which){keynum = e.which}
 if(keynum==13){
  //Посылать на сервак me.value;
  me.parentNode.innerHTML=me.value;
 }
}
</script>
</head>
Kostia вне форума Ответить с цитированием
Старый 01.07.2014, 00:33   #17
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

В теги script заключил, отображается теперь только таблица, однако при клике по ячейкам ничего не происходит:

Код:
<?php 

/* Подключение к базе данных */
$db = mysql_connect("localhost", "Dux", "myQFC2FDPxYSyfRn");
Mysql_select_db("fpmanager",$db);

$sql = mysql_query("SELECT * FROM data",$db);

$table = "<table border='1' cellspacing='3' cellpadding='3'>";
  while ($row = mysql_fetch_assoc($sql))
   {
       $table .= "<tr>";
       $table .= "<td onclick='foo(this)'>".$row['id']."</td>";
       $table .= "<td onclick='foo(this)'>".$row['Name']."</td>";
       $table .= "<td onclick='foo(this)'>".$row['Client']."</td>";
       $table .= "<td onclick='foo(this)'>".$row['Address']."</td>";
       $table .= "</tr>";
    }
       $table .= "</table> ";
      echo $table;

?>
Dux вне форума Ответить с цитированием
Старый 01.07.2014, 00:36   #18
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

function foo(me){
me.innerHTML="<input value='"+me.innerHTML+"' keypress='fookey(this,event)'>";
}
Kostia вне форума Ответить с цитированием
Старый 01.07.2014, 00:40   #19
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Kostia Посмотреть сообщение
function foo(me){
me.innerHTML="<input value='"+me.innerHTML+"' keypress='fookey(this,event)'>";
}
Спасибо, подправил. Теперь при клике появляется поле edit, а если кликнуть еще раз - длинный текст со значениями <input value='"+me.innerHTML+"' keypress='fookey(this,event)'>

Но изменить, сохранить - ничего не получается
Dux вне форума Ответить с цитированием
Старый 01.07.2014, 00:46   #20
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

function foo(me){
me.innerHTML="<input value='"+me.innerHTML+"' onkeypress='fookey(this,event)' onclick='return false;'>";
}

нет, наврал, наоборот же события чешут.

me.onclick = function(){};

а в fookey нужно обратно вернуть

____________
Код:
function foo(me){
 me.innerHTML="<input value='"+me.innerHTML+"' keypress='fookey(this,event)'>";
 me.onclick = function(){};
}

function fookey(me,e){
    var keynum=0;
	if(!e) return false;
	if(window.event){keynum = e.keyCode} else if(e.which){keynum = e.which}
 if(keynum==13){
  //Посылать на сервак me.value;
  me.parentNode.onclick = function(){foo(me.parentNode);};
  me.parentNode.innerHTML=me.value;
 }
}

Последний раз редактировалось Kostia; 01.07.2014 в 01:03.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли компонент который смог бы отобразить страницу визуально? Кроме TWebBrowser FleXik Общие вопросы Delphi 9 13.07.2013 21:15
Как отобразить данные с базы данных в ComboBox? Марсель21 БД в Delphi 19 15.06.2012 18:11
php внесение в базу данных mysql solution PHP 17 27.07.2011 14:01
Прикрутить базу данных Perl к сайту на PHP (Bitrix) Rudman Фриланс 1 08.08.2010 18:15
как отобразить тип данных TEXT в CSS tinisto HTML и CSS 2 03.10.2009 09:21