如何用PHP实现网页动态跳转

 更新时间:2016年11月25日 15:21  点击:1541
 代码如下 复制代码
<?
//PHP自带函数
Header("Location: http://www.111cn.net");
//利用meta
echo '<meta http-equiv="refresh" content="0; url=http://www.111cn.net">';
//利用Javascript语言
echo "<script language='javascript'>";
echo " location='http://www.111cn.net';";
echo "</script>";
?>

-------------------------------------------------

在PHP中的处理窗体数据比其它网页程序语言更简单——如果你使用这种语言一段时间后,你会发现这是一个不可争辩的事实。这种操作的简易性使它可以容易地处理更为复杂的窗体事件,包括今天讨论的主题,即在同一个窗体中通过多个按钮来处理不同的任务。
为什么使用多个提交任务?


在我回答这个问题之前,先让我回答一个很显然的问题:既然许多窗体更适合单一的提交按钮,为什么有时人们需要的是两个(或者是更多)的提交按钮?
对这一问题最好的解释方法是用我最近开发项目中的一个实例来说明。在这一项目中,我的任务是给一个图书馆建立一个详细目录查询系统。书籍题目被储存在数据库中,而管理员将可以使用一个基于浏览器功能的界面来查看其中任何一本书的记录,然后对这一记录上选择执行四种操作之一:成员还书登记,成员借书登记,书本丢失记录以及书本销售记录。
以上所有任务都要通过一个独立窗体来处理,这样就需要相应的按钮来响应这些任务。传入到窗体的数据将以不同的方式处理,这取决于被点击的按钮(借书/还书和成员记录相互关联;丢失/销售记录改变详细目录表)。由于一个窗体只能处理一个唯一的任务,但是相同的PHP脚本可以根据被点击的按钮和执行合适的代码段来处理以上四种任务。因此就需要处理多个提交任务按钮的单一窗体,以及实现不同按钮的自动响应的窗体处理代码段。
我首先列举一个简单例子:一个提交按扭的窗体。这样能够让你清楚地理解基本概念,并且为将要讲述的复杂范例打下铺垫。这里是一个窗体:
<html><head>Single-button form</head>
<body>
<form action="processor.php" method="post"> Enter a number: <input type="text" name="number" size="3"> <br>
<input type="submit" name="submit"> </form>
</body>
</html>
以下的是调用提交任务的processor.php脚本:
<?php
// check for submission
// retrieve value from posted data
if ($_POST['submit'])
{
echo "You entered the number " . $_POST['number']; }
?>
当一个窗体被提交给PHP脚本时,根据使用的提交方法(本文我假设为POST),PHP自动建立一个特定的$_POST或者$_GET数组。键入到窗体输入域内的数值会自动转化成数组中的关键数据,并可以使用常规数据符号来访问这些数据。
 
特别值得注意的是,如何在以上脚本中处理提交任务的按扭。当窗体被提交时,提交按钮根据自己实际的“name”转变成$_POST中的一个元素。添加以下一行代码就很清楚了:
print_r($_POST);
为了了解以上PHP脚本,你可以查看数组的内部结构,并可以清楚地看到不同窗体控件之间的相互联系。

    在网页制作过程中怎样在不刷新页面的情况下使前台页面和
后台CGI页面保持交互一直是个问题。这里介绍两个我在实践中使
用的方法。
    方法一:通过Cookie交互。一共是三个文件,分别为:
index.htm,action.php,main.htm
        原理为前台页面main.htm和后台action.php通过页面框架
index.htm组织起来,将action.php的页面宽度设为0,这样并不
影响显示。action.php将信息放入cookie中,main.htm通过读取
cookie来实现交互。在main.htm中也可以通过重新读取action.php
来实现控制后台CGI程序。
index.htm
---------------------------------------------------------------
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<frameset framespacing="0" border="false" frameborder="0" cols="0,*">
    <frame name="leftFrame" scrolling="no" noresize src="action.php">
    <frame name="rightFrame" scrolling="auto" src="main.htm">
</frameset><noframes>
    <body bgcolor="#FFFFFF">
    <p>本页使用页面框架,但是您的浏览器不支持。</p>
    </body>
</noframes>
</html>
---------------------------------------------------------------
action.php
---------------------------------------------------------------
<?
srand((double)microtime()*1000000);
$result=rand(0,100);
setcookie("action",$result,time()+900,"/");
?>
---------------------------------------------------------------
main.htm
---------------------------------------------------------------
<?php
//
// SourceForge: Breaking Down the Barriers to Open Source Development
// Copyright 1999-2000 (c) The SourceForge Crew
// http://sourceforge.net
//
// $Id: database.php,v 1.6 2000/04/11 14:17:13 cvs Exp $
//
// /etc/local.inc includes the machine specific database connect info
function db_connect() {
global $sys_dbhost,$sys_dbuser,$sys_dbpasswd;
$conn = mysql_connect($sys_dbhost,$sys_dbuser,$sys_dbpasswd);
if (!$conn) {
echo mysql_error();
}
return $conn;
}
function db_query($qstring,$print=0) {
global $sys_dbname;
return @mysql($sys_dbname,$qstring);
}
function db_numrows($qhandle) {
// return only if qhandle exists, otherwise 0
if ($qhandle) {
return @mysql_numrows($qhandle);
} else {
return 0;
}
}
function db_result($qhandle,$row,$field) {
return @mysql_result($qhandle,$row,$field);
}
function db_numfields($lhandle) {
return @mysql_numfields($lhandle);
}
function db_fieldname($lhandle,$fnumber) {
return @mysql_fieldname($lhandle,$fnumber);
}
function db_affected_rows($qhandle) {
return @mysql_affected_rows();
}
function db_fetch_array($qhandle) {
return @mysql_fetch_array($qhandle);
}
function db_insertid($qhandle) {
return @mysql_insert_id($qhandle);
}
function db_error() {
return " <P><B>".@mysql_error()."</B><P> ";
}
?>
    
    

[!--infotagslink--]

相关文章

  • ps动态环绕动画效果怎么制作

    ps动态环绕动画效果是现在很多人都非常喜欢的,大多数人还不知道ps动态环绕动画效果怎么制作下面文章就给大家介绍下ps怎么制作科技感十足的动态环绕动画效果,一起来看看...2017-07-06
  • php语言实现redis的客户端

    php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
  • jQuery+jRange实现滑动选取数值范围特效

    有时我们在页面上需要选择数值范围,如购物时选取价格区间,购买主机时自主选取CPU,内存大小配置等,使用直观的滑块条直接选取想要的数值大小即可,无需手动输入数值,操作简单又方便。HTML首先载入jQuery库文件以及jRange相关...2015-03-15
  • vue 实现动态路由的方法

    这篇文章主要介绍了vue 实现动态路由的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-06
  • JS实现的简洁纵向滑动菜单(滑动门)效果

    本文实例讲述了JS实现的简洁纵向滑动菜单(滑动门)效果。分享给大家供大家参考,具体如下:这是一款纵向布局的CSS+JavaScript滑动门代码,相当简洁的手法来实现,如果对颜色不满意,你可以试着自己修改CSS代码,这个滑动门将每一...2015-10-21
  • jQuery+slidereveal实现的面板滑动侧边展出效果

    我们借助一款jQuery插件:slidereveal.js,可以使用它控制面板左右侧滑出与隐藏等效果,项目地址:https://github.com/nnattawat/slideReveal。如何使用首先在页面中加载jquery库文件和slidereveal.js插件。复制代码 代码如...2015-03-15
  • PHP+jQuery翻板抽奖功能实现

    翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖信息。看似简单的一个操作过程,却包含着WEB技术的很多知识面,所以本文的读者应该熟...2015-10-21
  • Vue实现动态查询规则生成组件

    今天我们来给大家介绍下在Vue开发中我们经常会碰到的一种需求场景,本文主要介绍了Vue动态查询规则生成组件,需要的朋友们下面随着小编来一起学习学习吧...2021-05-27
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • c#动态调用Webservice的两种方法实例

    这篇文章介绍了c#动态调用Webservice的两种方法实例,有需要的朋友可以参考一下...2020-06-25
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • SQL Server中执行动态SQL

    本文详细讲解了SQLServer中执行动态SQL的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2022-05-19
  • PHP实现今天是星期几的几种写法

    复制代码 代码如下: // 第一种写法 $da = date("w"); if( $da == "1" ){ echo "今天是星期一"; }else if( $da == "2" ){ echo "今天是星期二"; }else if( $da == "3" ){ echo "今天是星期三"; }else if( $da == "4"...2013-10-04
  • 腾讯视频怎么放到自己的网页上?

    腾讯视频怎么放到自己的网页上?这个问题是一个基本的问题,要把腾讯视频放到自己的网页有许多的办法,当然一般情况就是直接使用它们的网页代码了,如果你要下载资源再放到...2016-09-20
  • C#中动态显示当前系统时间的实例方法

    想在网页中动态地显示当前系统的时间,找了好多,不过都是一些停在那里不动的。。。不过皇天不负有心人,终于让我找到了...2020-06-25
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • 原生js实现fadein 和 fadeout淡入淡出效果

    js里面设置DOM节点透明度的函数属性:filter= "alpha(opacity=" + value+ ")"(兼容ie)和opacity=value/100(兼容FF和GG)。 先来看看设置透明度的兼容性代码: 复制代码 代码如下: function setOpacity(ele, opacity) { if (...2014-06-07
  • jQuery动态添加与删除tr行实例代码

    最近由于项目的需要,需要动态的添加和删除table中的tr,感觉用JS可以实现,但是在网上找了一下,单纯的自己写JS,感觉太麻烦,而且也不好维护。于是想到了最近学的jQuery。这篇文章给大家用实例介绍了jQuery动态添加与删除tr行的方法,有需要的朋友们可以参考借鉴。...2016-10-20
  • 基于JavaScript实现网页倒计时自动跳转代码

    这篇文章主要介绍了基于JavaScript实现网页倒计时自动跳转代码 的相关资料,需要的朋友可以参考下...2015-12-29
  • 网页头部声明lang=”zh-cn”、lang=“zh”、lang=“zh-cmn-Hans”区别

    我们现在使用的软件都会自动在前面加一个申明了,那么在网页头部声明lang=”zh-cn”、lang=“zh”、lang=“zh-cmn-Hans”区别是什么呢?下面我们就一起来看看吧. 单...2016-09-20