|
|
<HTML>
<HEAD>
<TITLE>フレームマスタメンテ</TITLE>
<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">
</HEAD>
<FRAMESET id="TopFrame" rows="70,*">
<FRAME name="HeadFrame" src="control.php?view=head">
<FRAME name="BodyFrame" src="control.php?view=body">
</FRAMESET>
</HTML>
| |
|
|
|
|
<?
# **********************************************************
# 外部ファイル
# **********************************************************
require_once( "common.php" );
require_once( "db.php" );
require_once( "model.php" );
# **********************************************************
# 定数定義
# **********************************************************
define( 'PASS_MESSAGE', 1 );
define( 'PASS_HEAD', 2 );
define( 'PASS_BODY', 3 );
define( 'VIEW_MESSAGE', 'viewmessage.php' );
define( 'VIEW_HEAD', 'view.php' );
define( 'VIEW_BODY', 'view2.php' );
# **********************************************************
# グローバル変数
# **********************************************************
$Target = '商品分類マスタ';
$KeyName = '商品分類';
$KeyField = 'In1001';
$ErrMessage = '';
$Message = '';
$InData = '';
$OutData = '';
# **********************************************************
# 初期処理
# **********************************************************
if ( $_POST[$KeyField] != "" ) {
setcookie( $KeyField, $_POST[$KeyField] );
}
$SQL = new DB( "localhost", "lightbox", "root", "" );
$SQL->Debug = FALSE;
# **********************************************************
# 処理コントロール
# **********************************************************
switch( $_POST['GNO'] ) {
# ヘッド部からの処理
case PASS_HEAD:
CheckDataHead( );
if ( $ErrMessage == "" ) {
GetData( $SQL );
}
else {
$_POST['GNO'] = PASS_MESSAGE;
}
break;
# ボディ部からの処理
case PASS_BODY:
if( $_POST['send'] == '削除' ){
CheckDataBody( );
if ( $ErrMessage == "" ) {
DeleteData( $SQL );
if ( $ErrMessage == "" ) {
$_POST['GNO'] = PASS_MESSAGE;
}
}
else {
$_POST['GNO'] = PASS_MESSAGE;
}
}
else {
CheckDataBody( );
if ( $ErrMessage == "" ) {
UpdateData( $SQL );
if ( $ErrMessage == "" ) {
$_POST['GNO'] = PASS_MESSAGE;
}
}
else {
$_POST['GNO'] = PASS_MESSAGE;
}
}
break;
}
# **********************************************************
# ビュー
# **********************************************************
CreateInData( );
switch( $_POST['GNO'] ) {
# メッセージ表示
case PASS_MESSAGE:
require_once( VIEW_MESSAGE );
break;
# ヘッド部からの処理
case PASS_HEAD:
EditDataBody();
require_once( VIEW_BODY );
break;
# ボディ部からの処理
case PASS_BODY:
EditDataBody();
require_once( VIEW_BODY );
break;
# 初期画面
default:
if ( $_GET['view'] == 'head' ) {
RestoreCookie( );
EditDataHead( );
require_once( VIEW_HEAD );
}
if ( $_GET['view'] == 'body' ) {
EditDataBody();
require_once( VIEW_MESSAGE );
}
break;
}
# **********************************************************
# 終了処理
# **********************************************************
$SQL->Close();
# **********************************************************
# デバッグ
# **********************************************************
#DispData();
?>
| |
|
|
|
|
<?
# **********************************************************
# SQL文字列作成用
# **********************************************************
function SetCond( &$Value ) {
if ( $Value == "" ) {
$Value .= " where ";
}
else {
$Value .= " and ";
}
}
# **********************************************************
# データベースデータの読出し
# **********************************************************
function GetData( &$SQL ) {
global $Target,$KeyField,$KeyName;
$Query = 'select * from ' . $Target;
$Query .= ' where ' . $KeyName . ' = ' . Ss($_POST[$KeyField]);
$Column = $SQL->QueryEx( $Query );
if ( $Column ) {
EditQueryData( $Column );
}
}
# **********************************************************
# データベースデータの編集
# **********************************************************
function EditQueryData( &$Column ) {
$_POST["In2001"] = $Column['名称'];
}
# **********************************************************
# ヘッド部の編集
# **********************************************************
function EditDataHead( ) {
global $Target,$KeyField,$KeyName;
}
# **********************************************************
# ボディ部の編集
# **********************************************************
function EditDataBody( ) {
global $Target,$KeyField,$KeyName;
}
# **********************************************************
# 更新処理
# **********************************************************
function UpdateData( &$SQL ) {
global $ErrMessage,$Message;
global $Target,$KeyField,$KeyName;
$Query = 'select * from ' . $Target;
$Query .= ' where ' . $KeyName . ' = ' . Ss($_POST[$KeyField]);
if ( $SQL->QueryEx( $Query ) ) {
$Query = 'update ' . $Target;
$Query .= ' set ';
$Query .= '名称 = ' . Ss( $_POST['In2001'] );
$Query .= ',更新日 = CURDATE()';
$Query .= ' where ' . $KeyName . ' = ' . Ss($_POST[$KeyField]);
if ( !$SQL->Execute( $Query ) ) {
$ErrMessage = '更新に失敗しました';
return FALSE;
}
$Message = '正常に更新されました';
}
else{
$Query = 'insert into ' . $Target;
$Query .= ' (商品分類,名称,作成日,更新日) ';
$Query .= ' values(';
$Query .= Ss( $_POST[$KeyField] );
$Query .= ' ,' . Ss( $_POST['In2001']);
$Query .= ' ,CURDATE(),CURDATE()';
$Query .= ' )';
if ( !$SQL->Execute( $Query ) ) {
$ErrMessage = '追加に失敗しました';
return FALSE;
}
$Message = '新規登録に成功しました';
}
return TRUE;
}
# **********************************************************
# 削除処理
# **********************************************************
function DeleteData( &$SQL ){
global $ErrMessage,$Message;
global $Target,$KeyField,$KeyName;
$Query = 'delete from ' . $Target;
$Query .= ' where ' . $KeyName . ' = ' . Ss($_POST[$KeyField]);
if ( !$SQL->Execute( $Query ) ) {
$ErrMessage = '削除に失敗しました';
return FALSE;
}
$Message = '削除処理が成功しました';
return TRUE;
}
# **********************************************************
# ヘッド部のエラーチェック
# **********************************************************
function CheckDataHead( ) {
global $ErrMessage;
global $Target,$KeyField,$KeyName;
if ( trim( $_POST[$KeyField] ) == "" ) {
$ErrMessage = $KeyName . 'は必須入力です';
return FALSE;
}
return TRUE;
}
# **********************************************************
# ボディ部のエラーチェック
# **********************************************************
function CheckDataBody( ) {
global $ErrMessage;
global $Target,$KeyField,$KeyName;
return TRUE;
}
?>
| |
|
|
|
|
<SCRIPT language="javascript" type="text/javascript">
// **********************************************************
// フィールドのクリア
// **********************************************************
function ClearField(){
document.getElementsByName("<?= $KeyField ?>")[0].value = "";
}
// *********************************************************
// フォームのチェック
// *********************************************************
function CheckData() {
return true;
}
</SCRIPT>
<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<TITLE>PHP 雛形</TITLE>
<STYLE>
.MyCell {
background-color:silver
}
</STYLE>
</HEAD>
<BODY>
<FORM
name=frmMain
method=GET
action=control.php
target=BodyFrame
onSubmit='return CheckData()'
>
<TABLE border=0 bgcolor=black cellspacing=1 cellpadding=5>
<TR>
<!-- *******************************************************
入力
******************************************************** -->
<TD class=MyCell>商品分類</TD>
<TD class=MyCell>
<INPUT
type=text
name=<?= $KeyField ?>
value="<?= $_POST[$KeyField] ?>"
maxlength=3
size=5
>
</TD>
<!-- *******************************************************
送信ボタン
******************************************************** -->
<TD class=MyCell>
<INPUT type=submit name=send value="送信">
</TD>
<!-- *******************************************************
クリアボタン
******************************************************** -->
<TD class=MyCell>
<INPUT
type=button
value="クリア"
onClick='ClearField()'
>
</TD>
<!-- *******************************************************
画面初期化ボタン
******************************************************** -->
<TD class=MyCell>
<INPUT
type=button
value="Cancel"
onClick='top.location="frame.htm"'
>
</TD>
</TR>
</TABLE>
<!-- *******************************************************
画面ID
******************************************************** -->
<INPUT type=hidden name=GNO value="<?= PASS_HEAD ?>">
</FORM>
</BODY>
</HTML>
| |
|
|
|
|
<SCRIPT language="javascript" type="text/javascript">
// *********************************************************
// ローカルスクリプトのグローバル変数
// *********************************************************
var BtnFlg = 0;
// *********************************************************
// フォームのチェック
// *********************************************************
function CheckData() {
if ( BtnFlg == 0 ) {
if ( !confirm( "更新してもよろしいですか?" ) ) {
return false;
}
}
if ( BtnFlg == 9 ) {
BtnFlg = 0;
if ( !confirm( "★★★ 削除してもよろしいですか? ★★★ " ) ) {
return false;
}
}
return true;
}
</SCRIPT>
<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<TITLE>PHP 雛形</TITLE>
<STYLE>
.MyCell {
background-color:silver
}
</STYLE>
</HEAD>
<!-- *******************************************************
ドキュメントオブジェクト
******************************************************** -->
<BODY>
<SPAN style='color:blue'><?= $ErrMessage ?></SPAN>
<SPAN style='color:black;font-weight:bold'><?= $Message ?></SPAN>
<!-- *******************************************************
フォーム
******************************************************** -->
<FORM
name=frmMain
method=GET
action=control.php
onSubmit='return CheckData()'
>
<!-- *******************************************************
画面定義
******************************************************** -->
<INPUT type=submit name=send value="更新" onClick='BtnFlg=0'>
<INPUT type=reset value="リセット">
<INPUT
type=submit
name=send
value="削除"
style='color:red;font-weight:bold'
onClick='BtnFlg=9'
>
<br><br>
<TABLE border=0 bgcolor=black cellspacing=1 cellpadding=5>
<TR>
<TD class=MyCell>名称</TD>
<TD class=MyCell>
<INPUT
type=text
name=In2001
value="<?= $_POST["In2001"] ?>"
maxlength=25
size=70
>
</TD>
</TR>
</TABLE>
<!-- *******************************************************
画面番号
******************************************************** -->
<INPUT type=hidden name=GNO value="<?= PASS_BODY ?>">
<!-- *******************************************************
HEAD 部の入力データ引継ぎ用の埋め込み
******************************************************** -->
<?= $InData ?>
</FORM>
</BODY>
</HTML>
| |
|
|
|
|
<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<TITLE>メッセージ表示専用</TITLE>
<STYLE>
.MyCell {
background-color:silver
}
</STYLE>
</HEAD>
<BODY>
<SPAN style='color:blue'><?= $ErrMessage ?></SPAN>
<SPAN style='color:black;font-weight:bold'><?= $Message ?></SPAN>
</BODY>
</HTML>
| |
|
|
|
ActiveX コントロール使用前に こちら を参照して下さい
view2.php
|
<TR>
<TD class=MyCell>作成日</TD>
<TD class=MyCell>
<OBJECT
NAME=In2002
CLASSID='CLSID:20DD1B9E-87C4-11D1-8BE3-0000F8754DA1'
style='width:120;height:26'
>
<PARAM NAME="CurrentDate" VALUE="<?= $_POST["In2002"] ?>">
</OBJECT>
</TD>
</TR>
| |
|
model.php
|
# **********************************************************
# データベースデータの編集
# **********************************************************
function EditQueryData( &$Column ) {
$_POST["In2001"] = $Column['名称'];
$_POST["In2002"] = GetDtpValue( $Column['作成日'] );
}
# **********************************************************
# 更新処理
# **********************************************************
function UpdateData( &$SQL ) {
global $ErrMessage,$Message;
global $Target,$KeyField,$KeyName;
$Query = 'select * from ' . $Target;
$Query .= ' where ' . $KeyName . ' = ' . Ss($_POST[$KeyField]);
if ( $SQL->QueryEx( $Query ) ) {
$Query = 'update ' . $Target;
$Query .= ' set ';
$Query .= '名称 = ' . Ss( $_POST['In2001'] );
$Query .= ',作成日 = ' . Ss( GetDtpPostValue( $_POST['In2002'] ) );
$Query .= ',更新日 = CURDATE()';
$Query .= ' where ' . $KeyName . ' = ' . Ss($_POST[$KeyField]);
if ( !$SQL->Execute( $Query ) ) {
$ErrMessage = '更新に失敗しました';
return FALSE;
}
$Message = '正常に更新されました';
}
else{
$Query = 'insert into ' . $Target;
$Query .= ' (商品分類,名称,作成日,更新日) ';
$Query .= ' values(';
$Query .= Ss( $_POST[$KeyField] );
$Query .= ' ,' . Ss( $_POST['In2001']);
$Query .= ' ,CURDATE(),CURDATE()';
$Query .= ' )';
if ( !$SQL->Execute( $Query ) ) {
$ErrMessage = '追加に失敗しました';
return FALSE;
}
$Message = '新規登録に成功しました';
}
return TRUE;
}
| |
|
|
|