|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?静态|数据|数据库|页面 摘要:用php制造静态web页面时,在提交办事器之前,让php依据用户在以后页面上录入的某字段的值当即从数据库中掏出相干的其它字段的值并显示到以后页面上,是php法式开辟中的难点。本文以一个详细实例具体引见了如何将两个html内嵌式言语php和javascript奇妙联合起来,处理这个难点的详细办法。
关头词:php、静态、html。
如今的网站已从之前供应静态信息的模式开展到交互式的供应静态信息营业的体例。web的信息办事模式可以归纳综合为两点:向客户供应信息;纪录客户提交的信息。要供应这两种办事,需处理的成绩是:若何疾速地让用户在本人网站大批的信息中疾速提取他想要的信息,若何无效地纪录用户提交的信息,以便于未来用户查找。这些成绩都可以经由过程在网站中到场数据库撑持来处理。
因php对多种数据库都能供应优秀的撑持,且php的剧本直接嵌入在html文档中,利用十分便利。因而php是如今internet上最盛行的一种server端嵌入言语之一。别的,与其它的server端剧本言语如asp比拟,php收费开放源码而且供应跨平台的撑持,这使它可以等闲顺应现今收集中各类异质的收集情况;可以让网页制造人员可以十分快捷、便利地制造出功效壮大的静态web页面。然而,因为php是办事器端嵌入,更直不雅的了解是php语句是在办事器上履行,所以它只要提交时才将以后页面上的内容吸收和处置。而当你需求的内容是依据客户以后页面上录入的某字段的值,再静态到库中提取时,php就力所不及了。例如:要向客户供应一个“定货合同”的录入页面,个中包括一些“供货商信息”的录入,而各供货商的具体信息事前已在一个“商家”字典表中录入,如今请求当客户在以后页面上选中某“供货商”时,立时从“商家”字典表中将该供货商的某些信息如“开户行、帐号、地址、德律风”等提掏出来显示到以后页面上供客户直接利用或修正利用。如许的请求若用可视化编程言语如pb、vb等完成是一件垂手可得的事,但pb、vb不合适编写静态web页面;php合适编写静态web页面,但因为是办事器端嵌入,不克不及实时取得提交前页面上的变量值,所以完成上述请求就有必定的难度。在法式编写过程当中,我将php与javascript奇妙联合起来,处理了这个难点。
咱们晓得,一样是嵌入语句,然而javascript 又分歧于php言语。由于php是办事器端嵌入,而javascript是客户端嵌入,既javascript语句是在客户的阅读器上履行,这就决意了javascript可实时取得以后页面上的变量值,但又没法对办事器真个数据库直接操作。所以,将两者联合起来制造出功效壮大的静态web页面,可谓是珠联璧合。为了叙说便利,上面只以从字典表中掏出选中供货商的地址为例,申明详细做法。当需求掏出多个字段时,办法相似,但使用javascript函数从字符串中逐一掏出时,要仔细一些。
1.编写一个php函数
此函数的功效是将一切合适前提的“供货商信息”从“商家”字典表中掏出,并寄存到一个字符串变量$khsz中。
function khqk_tq($questr){
global $dbconn;
$dbq_resl=sybase_query($questr,$dbconn); //送出一个query字符串供sybase履行。
$dbq_rows=sybase_num_rows($dbq_resl); //取得前往行的数量。
$j=0;
for ($i=0;$i<$dbq_rows;$i++){ //建轮回,将每行中所需字段掏出,并放到数组$k[]中。
$k[]=sybase_result($dbq_resl,$i,"kh_id"); //掏出用户选择的供货商编号。
$add=sybase_result($dbq_resl,$i,"address"); //掏出该供货商地址。
if ($add==""):
$k[]="无";
else :
$k[]=sybase_result($dbq_resl,$i,"address");
endif;
$khsz=$khsz.$k[$j]."|".$k[$j+1]."|"; //将各字段值以”|”为分隔符,毗连到变量$khsz 中,构成一个长字符串。
$j=$j+2;
}
return $khsz;
}
2.编写一个javascript函数
该函数的功效是从字符串中依据kh_id值找到该供货商的地址,嵌入到html文件中。
<script language="javascript">
var khstr="<?=$k?>" //先将php变量改变成javascript变量khstr。
function khxz_onclick(){
frm=document.frmplanfill;
ghstj=frm.kh_id.value; //取得以后页面上方才选中的“供货商”的kh_id值。
numkh=khstr.indexof(ghstj,0) ; //从khstr串中找到该kh_id值地点的地位。
addr=khstr.substring(khstr.indexof("|",numkh)+1,khstr.indexof("|",khstr.indexof("|",numkh)+1)); //从 khstr串中掏出与kh_id对应的地址字段的值。
frm.address.value=addr; //将掏出的值赋给以后录入页面上的字段变量address。
}
</script>
3.在html中将两者联合起来,互为所用
$khinfo="select kh_id,address from kh where co_id=$s_coid and type='g' order by kh_id";
//将取供货商信息的sql语句放到变量$khinfo中。
$k=khqk_tq($khinfo); //挪用php函数,并将前往的字符串值放到变量$k中。
<meta name="generator" content="microsoft developer studio">
<meta http-equiv="content-type" content="text/html; charset=gb_2312-80">
<title>定货合同办理</title>
</head>
<body style="background-color: ivory">
<form name=frmplanfill method=post action="dhht_crt.php">
<table align=center border=1 cellpadding=0 cellspacing=0 width="90%" style="font-size: 10pt">
<tr>
<td>合同编号</td><td><input name=htbh size=15></td>
<td>合同概述</td><td colspan=5><input name=htgs size=53></td>
</tr>
<tr>
<td>供货厂商</td>
<td><select name="kh_id" onchange="khxz_onclick()"> //当每次改动所选供货商时,触发上述javascript函数。
<?prt_sele("select convert(int,kh_id),name from kh where co_id=$s_coid and type='g'",0,1)?></select></td> //将合适前提的一切供货商称号放到下拉列表框中供用户选择。个中prt_sele是自界说的 php函数。
<td>地 址</td>
<td colspan=3><input type=text name=address size=34 ></td> //触发javascript函数的了局是使得adrress变量取得值并显示到页面上。
以上代码的体系情况是:linux操作体系、sybase数据库、web server为apache、php4法式界面。以大将php和javascript相联合的法式开辟思惟已胜利地应用到咱们开辟的多个静态web页面中。
算是1个熟悉的过程,所以c语言的基础有就更好,没有也不怕。 |
|