ソースコードをシンプルにする


  入門ソースコード ... Version 2






kubun1
SendButton 送信

select.php
  

<SCRIPT language=JavaScript>
</SCRIPT>
<!-- *******************************************************
 スクリプトタグを先頭に置く事によって、HTMLタグと記述
 を分離すると共に、VBScriptに仕様変更した場合のトラブル
 を防ぐ
******************************************************** -->

<HTML>

<HEAD>
<!-- *******************************************************
 文字化け防止の為必ず入れる (SHIFT JIS用)
******************************************************** -->
<?= HtmlCharset( "Shift_JIS" ); ?>
</HEAD>

<BODY>

<!-- *******************************************************
 送信方法は POST
******************************************************** -->
<FORM name=frmMain method=post action=select.php>

	<SELECT name=kubun>
	<OPTION value=1>登録
	<OPTION value=2>修正
	<OPTION value=3>削除
	</SELECT>

	<INPUT name=SendButton type=submit value="送信">

</FORM>

</BODY>
</HTML>

<!-- *******************************************************
 ページロード時の初期処理
******************************************************** -->
<SCRIPT for=window event=onload language=JavaScript>

	window.focus();
	top.moveTo( 0, 0 );
	top.resizeTo( screen.width, screen.height - 32 );

</SCRIPT>

<?
# **********************************************************
# キャラクタセットを指定するMETAタグ文字列作成関数
# **********************************************************
function HtmlCharset( $Target ) {

	$strRet = '<META';
	$strRet .= ' http-equiv="Content-type"';
	$strRet .= " content=\"text/html; charset=$Target\">";

	return $strRet;

}

# **********************************************************
# デバッグ用 POST メッセージの表示
# **********************************************************
	print "<TABLE border=0 cellspacing=1 cellpadding=5 bgcolor=black>\n";
	foreach( $_POST as $Key => $Value ) {
		print "<TR>\n";
		print "<TD bgcolor=white>$Key</TD>\n";
		print "<TD bgcolor=white>$Value</TD>\n";
		print "</TR>\n";
	}
	print "</TABLE>\n";
?>

  







  ソースコード毎の固有部分をなくす




  

<FORM name=frmMain method=post action=select.php>
  

ここで、「select.php」は、ソースコードの名前ですが、違ったソースコードを書く場合にこの部分を変更しなくてはなりません。もちろん 「action=select.php」自体を省略しても良いのですが、他のコードへポストするといったふうに、実際は書かなければならない事が多くなります。せっかくプログラムを作っているのですから、自分自身にポストする場合はコードに書かせる事を覚えましょう。

  

<FORM name=frmMain method=post action="<?= $_SERVER['SCRIPT_NAME'] ?>">
  

$_SERVER はスーパーク゜ローバルと呼ばれる連想配列のうちのひとつで、PHP ソースコードのどこからも参照できるグローバル変数です。$_SERVER['SCRIPT_NAME'] と指定する事によって、そのURL のルートからの自分自身のパスを参照します

  

<FORM name=frmMain method=post action="/localweb/pgdojo/base/select.php">
  

  ソースコードを短くする

いろいろな処理を追加していくと、当然ソースコードが長くなって行きます。長くなればなるほど、全てを把握するのが難しくなってきます。

ソースコード内の行間も、ある「まとまり」で分ける事を目的によってより解りやすくする事ができました。では、ソースコード内の処理の特性で分ける事によってソース全体が解り易くなるはずです。

そのために、ソースコードを二つに分ける事にします。

select.php
  

<?
# **********************************************************
# 関数定義
# **********************************************************
require_once( "function.php" );
?>
<SCRIPT language=JavaScript>
</SCRIPT>
<!-- *******************************************************
 スクリプトタグを先頭に置く事によって、HTMLタグと記述
 を分離すると共に、VBScriptに仕様変更した場合のトラブル
 を防ぐ
******************************************************** -->

<HTML>

<HEAD>
<!-- *******************************************************
 文字化け防止の為必ず入れる (SHIFT JIS用)
******************************************************** -->
<?= HtmlCharset( "Shift_JIS" ); ?>
</HEAD>

<BODY>

<!-- *******************************************************
 送信方法は POST
******************************************************** -->
<FORM name=frmMain method=post action="<?= $_SERVER['SCRIPT_NAME'] ?>">

	<SELECT name=kubun>
	<OPTION value=1>登録
	<OPTION value=2>修正
	<OPTION value=3>削除
	</SELECT>

	<INPUT name=SendButton type=submit value="送信">

</FORM>

</BODY>
</HTML>

<!-- *******************************************************
 ページロード時の初期処理
******************************************************** -->
<SCRIPT for=window event=onload language=JavaScript>

	window.focus();
	top.moveTo( 0, 0 );
	top.resizeTo( screen.width, screen.height - 32 );

</SCRIPT>

<?
# **********************************************************
# デバッグ用表示
# **********************************************************
DispPost();
?>
  

function.php
  

<?
# **********************************************************
# キャラクタセットを指定するMETAタグ文字列作成関数
# **********************************************************
function HtmlCharset( $Target ) {

	$strRet = '<META';
	$strRet .= ' http-equiv="Content-type"';
	$strRet .= " content=\"text/html; charset=$Target\">";

	return $strRet;

}

# **********************************************************
# デバッグ用 POST メッセージの表示
# **********************************************************
function DispPost() {

	print "<TABLE border=0 cellspacing=1 cellpadding=5 bgcolor=black>\n";
	foreach( $_POST as $Key => $Value ) {
		print "<TR>\n";
		print "<TD bgcolor=white>$Key</TD>\n";
		print "<TD bgcolor=white>$Value</TD>\n";
		print "</TR>\n";
	}
	print "</TABLE>\n";

}

?>
  

require_once( "function.php" ) という記述は、select.php から function.php を取り込んでから実行するという命令です。require( "function.php" ) や include( "function.php" )という書き方がありますが、require_once は一度しか取り込まないという意味です。

「開発」では、予想されるトラブルを事前に回避すると言う意味で、require_once を使うのが良いでしょう。




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[pgdojo]
CCBot/2.0 (https://commoncrawl.org/faq/)
25/04/18 03:28:33
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube