使用 DB2 pureXML 和 PHP 构建 Support Knowledge Base(下)
2010-02-25 00:00:00 来源:WEB开发网上面的清单显示了用于检查表单应该处于创建模式还是处于编辑模式的代码。它从 GET 变量 id 读取信息。article 表单随后使用这个检查的结果来判断是否应该输出表单字段中的现有值。
在创建一篇新文章时,页面看上去类似图 8 所示。
图 8. Create New Article
PHP 构建 Support Knowledge Base(下)" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>
在编辑现有文章时,页面将显示比信息提供页面(只读)更多的字段,如图 9 所示。
图 9. Edit Article
PHP 构建 Support Knowledge Base(下)" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>
和 Create/Edit Category 页面一样,该页面使用一个中间脚本处理实际的插入或更新事务,然后将用户返回到 Create/Edit Article 页面。创建一个名为 article_edit_process.php 的文件,将清单 20 的代码复制到其中,然后将文件保存到项目的根目录中。
清单 20. article_edit_process.php
<?php
require_once("classes/article.php");
$query_string = "";
$article = new Article;
if(isset($_POST['id'])) {
$article->setId($_POST['id']);
$query_string = '?id='.$_POST['id'];
}
if(!(strlen($_POST['title']) > 0)) {
$msg = "Title is a mandatory field.";
$msg_type = 2;
} else if(!(strlen($_POST['category']) > 0) || ($_POST['category'] == "0")) {
$msg = "Category is a mandatory field.";
$msg_type = 2;
} else if(!(strlen($_POST['content']) > 0)) {
$msg = "Article Content is a mandatory field.";
$msg_type = 2;
} else {
$article->setTitle($_POST['title']);
$article->setCategoryId($_POST['category']);
$article->setContent($_POST['content']);
$success = $article->save();
if($success) {
$msg = "Article saved successfully.";
$msg_type = 1;
} else {
$msg = "Database error occurred.";
$msg_type = 2;
}
}
if(strlen($query_string) > 0) {
$query_string .= "&msg=$msg&msg_type=$msg_type";
} else {
$query_string = "?msg=$msg&msg_type=$msg_type";
}
header("Location: article_edit.php".$query_string);
?>
更多精彩
赞助商链接