所以我想把MySQL中的信息拉到textarea框中。
基本上每一行MySQL信息,我想从中提取一个值,并将其放在换行符上进行编辑。
例如,我有一个包含cat_id和cat_desc的表。我想有一个文本区域,它将从cat_desc中的每一行中提取信息,并允许它被编辑(并提交回正确的行)
这只能用PHP实现,还是需要调用Javascript?
点击提交按钮即可完成保存。
答案 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`)
);
它没有删除功能