JAVA网页编程之JavaScript+PHP 使用一:网页制造中双...
IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,netbeans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。在网页制造中,经常碰到这类情形,经由过程主下拉菜单的选择,静态的天生子下拉菜单。比方:在主菜单中有“核心旧事”、“生存时髦”、“心境故事”三个选项,经由过程“核心旧事”的选择,子菜单主动天生如“国际”、“国际”、“体育”、“文娱”,依此类推。使用JavaScript,我们能够轻松完成上述效果。但成绩是,假如菜单中的选项是从数据库(或其他文件)中静态提取,完成起来就并非十拿九稳的了。笔者依据本人的实践履历,向人人先容一种使用JavaScript+PHP的完成办法,文中的数据库接纳MySQL。在本例中,笔者还将先容在每次表单提交以后,怎样前往上一次菜单选项的选择形态。
文章中所先容的PHP的感化,一是用来从数据库中提取菜单选项,另外一感化,就是用来天生JavaScript代码。读者能够接纳本人熟习的注释型言语,如ASP。
为了简化代码,笔者假定主菜单已经由过程HTML机关,因为子菜单必要静态计划,以是只绘制了基础框架,HTML代码以下:
<selectname="mmenu">//主菜单计划
<optionvalue="a">核心旧事</option>
<optionvalue="b">生存时髦</option>
<optionvalue="c">心境故事</option>
//value必需与下文的menu数组相分歧
</select>
<selectname="smenu">//子菜单计划
</select>
我们必要思索的是,菜单的OnChange()事务必要完成哪些步骤。其大抵历程是,依据主菜单的选项,机关子菜单项目。而子菜单的项目笔墨最功德先设定。依据这个思绪,笔者接纳了JavaScript中的团结数组纪录子菜单选项,并由PHP在加载时主动天生。由此,笔者计划了以下的JavaScript函数setMenu():
functionsetMenu(){
menu=Array("a","b","c");//机关menu团结数组
<?php//入手下手PHP程序
$DB=newMy_DB();
$DB->Database="***";//机关新的MySQL毗连,这里利用了PHPLIB
$mmenu=array("a","b","c");//这里笔者作了简化
for($i=0;$i<count($mmenu);$i++){
$id=$mmenu[$i];
$DB->query("selectmenufromclasswheremenuid=".$id."");
//假定菜单选项寄存在class表的menu字段,menuid用来标识menu
while($DB->next_record()){
$smenu[]=""".$DB->f("menu").""";
}
if(isset($smenu)&&is_array($smenu)){
$str=implode(",",$smenu);
echo"menu["$id"]=Array($str);
";
//完成menu团结数组的添补
unset($smenu);//删除smenu变量
}
}
?>//停止PHP程序
with(document){
id=all("mmenu").value;//取得主菜单的value值
arr_menu=menu;
for(i=all("smenu").options.length;i>=0;i--){
all("smenu").options.remove(i);//必要扫除原本的项目
}
if(arr_menu.length==0){
return;
}
for(i=0;i<arr_menu.length;i++){
obj=createElement("option");
obj.text=arr_class;
all("smenu").options.add(obj);
}
}
}
如许每次显现文档时,PHP部分将注释为Javascript言语,当单击主菜单时,子菜单将主动更新。一样事理,读者能够依据此思绪,制造更庞大的多重菜单选项。
最初,笔者扼要先容一下,怎样完成在表单提交后,仍旧坚持菜单项上一次的形态。技能实在良多,而笔者接纳的是隐含变量法。在表单中增加以下代码:
<inputtype="hidden"name="h1">
<inputtype="hidden"name="h2">
我们只必要在Form表单的OnSubmit()事务中给每一个隐含变量赋值便可。即:
document.all("h1").value=document.all("mmenu").selectedIndex;
document.all("h2").value=document.all("smenu").selectedIndex;
为了使用隐含变量,在文档的Body的onLoad()事务中,我们使用PHP办法(也可用别的办法)来把持菜单的显现:
<?php
if(!isset($h1)){//只必要判别$h1
$h1=0;
$h2=0;
}
echo"document.all("mmenu").selectedIndex=".$h1.";
";
echo"document.all("mmenu").click();
";
echo"document.all("mmenu").selectedIndex=".$h1.";
";
echo"document.all("smenu").selectedIndex=".$h2;
?>
至此,我们已完成双下拉菜单的静态完成办法。
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
页:
[1]