下面是用PHP实现简单网页计算器的代码,为什么不能把<?php...?>这段代码移到<table>..</table>后呢?

PHP与html混编时的顺序弄不大清楚,为什么不能先把计算器的结构弄出来(<bable>那一段),再用PHP判断和运算?望指教,谢谢。<html><head><title... PHP与html混编时的顺序弄不大清楚,为什么不能先把计算器的结构弄出来(<bable>那一段),再用PHP判断和运算?望指教,谢谢。
<html>
<head>
<title>PHP实现简单计算器</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>

<body>
//想要移到后面的是下面这段代码:
<?php
$num1=true;
$num2=true;
$numa=true;
$numb=true;
$message="";
//单路分支
if(isset($_GET["sub"])){
if($_GET["num1"]==""){
$num1=false;
$message.="第一个数不能为空";
}
if(!is_numeric($_GET["num1"])){
$numa=false;
$message.="第一个数不是数字";
}
if($_GET["num2"]==""){
$num2=false;
$message.="第二个数不能为空";
}
if(!is_numeric($_GET["num2"])){
$numb=false;
$message.="第二个数不是数字";
}

if($num1 && $num2 && $numa && $numb) {
$sum=0;
//多路分支switch
switch($_GET["ysf"]){
case "+":
$sum=$_GET["num1"]+$_GET["num2"];
break;
case "-":
$sum=$_GET["num1"]-$_GET["num2"];
break;
case "x":
$sum=$_GET["num1"]*$_GET["num2"];
break;
case "/":
$sum=$_GET["num1"]/$_GET["num2"];
break;
case "%":
$sum=$_GET["num1"]%$_GET["num2"];
break;
}
}
}
?>

// 以上是想移到</table>后面的代码

<table align="center" border="1" width="500">
<caption><h1>计算器</h1></caption>
<form action="jsq.php">
<tr>
<td>
<input type="text" size="5" name="num1" value="<?php echo $_GET["num1"] ?>" >
</td>
<td>
<select name="ysf">
<option value="+" <?php if($_GET["ysf"]=="+") echo "selected" ?>>+</option>
<option value="-" <?php if($_GET["ysf"]=="-") echo "selected" ?>>-</option>
<option value="x" <?php echo $_GET["ysf"]=="x"?"selected":"" ?>>x</option>
<option value="/" <?php echo $_GET["ysf"]=="/"?"selected":"" ?>>/</option>
<option value="%" <?php echo $_GET["ysf"]=="%"?"selected":"" ?>>%</option>
</select>
</td>
<td>
<input type="text" size="5" name="num2" value="<?php echo $_GET["num2"] ?>">
</td>
<td>
<input type="submit" name="sub" value="计算">
</td>
</tr>
<?php
if(isset($_GET["sub"])){
echo '<tr><td colspan="5">';
if($num1 && $num1 && $numa && $numb){
echo "结果:".$_GET["num1"]." ".$_GET["ysf"]." ".$_GET["num2"]." = ".$sum;
}else{
echo $message;
}
echo '</td></tr>';
}
?>
</form>
</table>
</body>
</html>
展开
 我来答
anlityli
2012-10-12 · 超过28用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:91.1万
展开全部
语句是从上向下,一句一句的执行!
如果,放到后面,就等于先执行了表格里面的变量,但是这些变量,在这里面就是没有意义的声明!到网页的最后面才开始执行PHP语句,即使算出来了结果,但是也不能回头再把变量的值赋回到表格里面的变量中,因为语句执行到最后,就已经执行完毕了!
这个涉及到了PHP语言的流程问题!!
tansuanna
2012-10-12 · TA获得超过130个赞
知道答主
回答量:67
采纳率:0%
帮助的人:37.5万
展开全部
看起来,像是没弄明白PHP和HTML的执行原理,简单来说,是所有PHP先在服务器端执行,把生成的结果和HTML混起来生成新的HTML发到客户端,然后客户端的浏览器再对生成的HTML进行解释。
你这个计算器有个提交到自己的表单,还有段处理提交信息的PHP逻辑,其实展示表单和处理表单数据是两次请求,搞清楚这个原理再自己捋捋吧。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-12
展开全部
移到table之后的话,你的一些个变量值就不能对应了吧,
比如$sum,$message等,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
douyl_2010
2012-10-12 · TA获得超过284个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:101万
展开全部
可以的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
boyatec
2012-10-12
知道答主
回答量:23
采纳率:0%
帮助的人:4.1万
展开全部
你指的是哪段?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式