更新时预先填写php表单
我目前只使用一个表单进行更新和插入,效果很好。但我想在只更新时预先填充它。我不知道该怎么做。如果我用php变量设置该值,我会在日志中得到一个错误,表明它没有定义。感谢您的帮助。多谢各位 表格如下:更新时预先填写php表单,php,oop,sql-update,crud,Php,Oop,Sql Update,Crud,我目前只使用一个表单进行更新和插入,效果很好。但我想在只更新时预先填充它。我不知道该怎么做。如果我用php变量设置该值,我会在日志中得到一个错误,表明它没有定义。感谢您的帮助。多谢各位 表格如下: <?php include_once('Crud_class.php'); $obj = new Crud("loocalhost","root","password","mydb"); $id = $_GET['id']; if (isset($_GET['id']) &&
<?php
include_once('Crud_class.php');
$obj = new Crud("loocalhost","root","password","mydb");
$id = $_GET['id'];
if (isset($_GET['id']) && $_GET['id'] > 0) {
echo "Update for record id#:" . $_GET['id'];
} else {
echo "Insert new book";
}
?>
<html>
<head>
<title>Add New Product</title>
</head>
<body>
<form method="post" action="actions.php">
<ul class="form">
<li><label for"title">Title:</label>
<input type="text" name="title" value="<?php echo $title?>" /></li>
<li><label for="author">Author:</label>
<input type="text" name="author"/></li>
<li><label for="category">Category:</label>
<select name="category">
<option value="General">General</option>
<option value="HTML/CSS">HTML/CSS</option>
<option value="Javascript">Javascript</option>
<option value="PHP">PHP</option>
<option value="Other">Other</option>
</select></li>
<li><label for"description">Description:</label>
<textarea name="description"></textarea></li>
<li><label for="img_path">Image Path:</label>
<input type="text" name="img_path"/></li>
<input type="hidden" name="id" value="<?php if ($id > 0) { echo $id;} else {echo 0;} ?>"/>
<li><input class="submit" type="submit" name="submit" value="Submit"/></li>
</ul>
</form>
</body>
</html>
添加新产品
- 标题:
表单的预填充取决于在HTML中嵌入预填充内容,并带有属性,例如文本框的值=
属性,或者在
中的选项上设置selected=“selected”
,或者让客户端javascript基于通过AJAX检索的数据执行预填充,或者再次,嵌入在HTML中
php表单中的Title
字段就是我所说的一个例子——您得到了以下信息:
value="<?php echo $title?>"
value=“”
这就是所有其他字段所需的内容(以及
字段所需的selected=“selected”
)
另外,请参见表单的预填充取决于在HTML中嵌入带有属性的预填充内容,例如文本框的值=
属性,或者在
中的选项上设置selected=“selected”
,或者让客户端javascript基于通过AJAX或,同样,嵌入在HTML中
php表单中的Title
字段就是我所说的一个例子——您得到了以下信息:
value="<?php echo $title?>"
value=“”
这就是所有其他字段所需的内容(以及
字段所需的selected=“selected”
)
另外,请参见您需要从表单页面上正在编辑的记录中获取数据
if (isset($_GET['id']) && $_GET['id'] > 0) {
echo "Update for record id#:" . $_GET['id'];
// GET row from database, something like $obj->read($_GET['id']);
}
为此,您需要向CRUD类添加一些读取函数,该类选择一行,其中id=某个输入整数
如果您有数据,请将其提取到对象或数组中,并在表单中使用这些值:
<input type="text" value="<?php if (isset($data)) echo $data['author']; ?>">
您需要从表单页面上有人正在编辑的记录中获取数据
if (isset($_GET['id']) && $_GET['id'] > 0) {
echo "Update for record id#:" . $_GET['id'];
// GET row from database, something like $obj->read($_GET['id']);
}
为此,您需要向CRUD类添加一些读取函数,该类选择一行,其中id=某个输入整数
如果您有数据,请将其提取到对象或数组中,并在表单中使用这些值:
<input type="text" value="<?php if (isset($data)) echo $data['author']; ?>">
您已经设置了ID和条件。现在,您需要初始化所需的变量:
if (isset($_GET['id']) && $_GET['id'] > 0) {
echo "Update for record id#:" . $_GET['id'];
$formValues = readRecordByID($_GET['id']); // you will need to create this crud select function
} else {
echo "Insert new book";
//initialize blank values:
$formValues = array(
'author'=>'',
'category'=>'',
'description'=>'',
'img_path'=>'');
}
现在,在您的表单中,可以安全地使用:
<input type="text" name="author" value="$formValues['author']"/>
您已经设置了ID和条件。现在,您需要初始化所需的变量:
if (isset($_GET['id']) && $_GET['id'] > 0) {
echo "Update for record id#:" . $_GET['id'];
$formValues = readRecordByID($_GET['id']); // you will need to create this crud select function
} else {
echo "Insert new book";
//initialize blank values:
$formValues = array(
'author'=>'',
'category'=>'',
'description'=>'',
'img_path'=>'');
}
现在,在您的表单中,可以安全地使用:
<input type="text" name="author" value="$formValues['author']"/>
将php更改为
<?php
include_once('Crud_class.php');
$obj = new Crud("loocalhost","root","password","mydb");
$id = $_GET['id'];
if (isset($_GET['id']) && $_GET['id'] > 0) {
echo "Update for record id#:" . $_GET['id'];
}
if(isset($_REQUEST['id'])){ // this is added
$id=$_REQUEST['id'];
$result=$obj->mysqli->query("SELECT * FROM books WHERE id='$id'");
$rows=$result->fetch_assoc();
extract($rows);
} else {
echo "Insert new book";
}
?>
将php更改为
<?php
include_once('Crud_class.php');
$obj = new Crud("loocalhost","root","password","mydb");
$id = $_GET['id'];
if (isset($_GET['id']) && $_GET['id'] > 0) {
echo "Update for record id#:" . $_GET['id'];
}
if(isset($_REQUEST['id'])){ // this is added
$id=$_REQUEST['id'];
$result=$obj->mysqli->query("SELECT * FROM books WHERE id='$id'");
$rows=$result->fetch_assoc();
extract($rows);
} else {
echo "Insert new book";
}
?>
什么是未定义的?请从您的日志中包含完整的错误。[Thu Jan 09 09:44:43 2014][error][client 127.0.0.1]PHP注意:未定义索引:第39行/home/prissipix/Projects/BTS_Bookshelf/form.PHP中的title,referer:听起来您的表单尚未发布,因此$u POST['title']不存在。看什么是没有定义的?请从您的日志中包含完整的错误。[Thu Jan 09 09:44:43 2014][error][client 127.0.0.1]PHP注意:未定义索引:第39行/home/prissipix/Projects/BTS_Bookshelf/form.PHP中的title,referer:听起来您的表单尚未发布,因此$u POST['title']不存在。看右边,但是这样做会给我一个错误,说明变量没有定义。我以前见过使用两个表单的情况,一个用于插入,一个用于更新,但在使用一个表单时似乎无法使其正常工作。我还尝试了value=“”,但没有成功:/正如对您的问题的评论,完整的错误消息是什么?未定义什么变量?未定义标题变量。下面是完整的错误消息[Thu Jan 09 09:44:43 2014][error][client 127.0.0.1]PHP注意:未定义索引:第39行/home/prissipix/Projects/BTS_Bookshelf/form.PHP中的title,referer:127.0.0.1/Projects/BTS_Bookshelf/read.PHP?错误消息不是这么说的。错误消息显示未定义索引。感谢您指出,我对php完全不熟悉,只是试图完全理解这一点,但这样做会给我一个错误,说明变量未定义。我以前见过使用两个表单的情况,一个用于插入,一个用于更新,但在使用一个表单时似乎无法使其正常工作。我还尝试了value=“”,但没有成功:/正如对您的问题的评论,完整的错误消息是什么?未定义什么变量?未定义标题变量。下面是完整的错误消息[Thu Jan 09 09:44:43 2014][error][client 127.0.0.1]PHP注意:未定义索引:第39行/home/prissipix/Projects/BTS_Bookshelf/form.PHP中的title,referer:127.0.0.1/Projects/BTS_Bookshelf/read.PHP?错误消息不是这么说的。错误消息显示未定义索引。感谢您指出,我对php完全不熟悉,只是想弄清楚这一点,选择框有问题,但其余的工作正常。选择框仍有问题,但其余的工作正常