将信息从MySQL拉入textarea进行编辑

时间:2011-11-18 14:30:42

标签: php javascript html

所以我想把MySQL中的信息拉到textarea框中。

基本上每一行MySQL信息,我想从中提取一个值,并将其放在换行符上进行编辑。

例如,我有一个包含cat_id和cat_desc的表。我想有一个文本区域,它将从cat_desc中的每一行中提取信息,并允许它被编辑(并提交回正确的行)

这只能用PHP实现,还是需要调用Javascript?

点击提交按钮即可完成保存。

3 个答案:

答案 0 :(得分:0)

如果您不想动态填充textarea,可以使用PHP。

如果要进行更改,则需要提交数据并刷新页面。

答案 1 :(得分:0)

您可以使用contentEditable http://html5demos.com/contenteditable,将每个字段添加到单独的div

<div contentEditable="true">
  <div id="cat_1">content1</div>
  <div id="cat_2">content2</div>
</div>

之后您可以使用regexp提取数据并写回数据库。

答案 2 :(得分:-1)

编辑数据库内容的想法是错误的。

而不是在一个textarea中编辑所有内容,你必须实现一些CRUD应用程序,提供列出条目,编辑条目和创建条目的基本功能,每个明显

首先创建一个列表工具,用数据内容创建这样的东西:

<a href=edit.php?id=1>Descr 1</a>
<a href=edit.php?id=2>Descr 2</a>

接下来创建一个表单来编辑一个条目,并根据传递的id在数据库中填充它。

这是一个这样一个应用的简单例子 虽然已经可以满足您的需求

一个名为what的主文件,让它成为whatever.php

<?
mysql_connect();
mysql_select_db("new");
$table = "test";
if($_SERVER['REQUEST_METHOD']=='POST') { //form handler part:
  $name = mysql_real_escape_string($_POST['name']);
  if ($id = intval($_POST['id'])) {
    $query="UPDATE $table SET name='$name' WHERE id=$id";
  } else {
    $query="INSERT INTO $table SET name='$name'";
  }
  mysql_query($query) or trigger_error(mysql_error()." in ".$query);
  header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
  exit;
}
if (!isset($_GET['id'])) { //listing part:
  $LIST=array();
  $query="SELECT * FROM $table";
  $res=mysql_query($query) or trigger_error(mysql_error()." ".$query);
  while($row=mysql_fetch_assoc($res)) $LIST[]=$row;
  include 'list.php';
} else { // form displaying part:
  if ($id=intval($_GET['id'])) {
    $query="SELECT * FROM $table WHERE id=$id";
    $res=mysql_query($query);
    $row=mysql_fetch_assoc($res);
    foreach ($row as $k => $v) $row[$k]=htmlspecialchars($v);
  } else {
    $row['name']='';
    $row['id']=0;
  }
  include 'form.php';
}

名为list.php

的商家信息模板
<a href="?id=0">Add item</a>
<? foreach ($LIST as $row): ?>
<li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
<? endforeach ?>

一个名为... guess的表单模板!

<form method="POST">
<input type="text" name="name" value="<?=$row['name']?>"><br>
<input type="hidden" name="id" value="<?=$row['id']?>">
<input type="submit"><br>
<a href="?">Return to the list</a>
</form>

只要你有一个工作数据库和一个像这样创建的表

,它就是一个工作示例
CREATE TABLE `test` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

它没有删除功能