下面是用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> 展开
<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> 展开
5个回答
展开全部
看起来,像是没弄明白PHP和HTML的执行原理,简单来说,是所有PHP先在服务器端执行,把生成的结果和HTML混起来生成新的HTML发到客户端,然后客户端的浏览器再对生成的HTML进行解释。
你这个计算器有个提交到自己的表单,还有段处理提交信息的PHP逻辑,其实展示表单和处理表单数据是两次请求,搞清楚这个原理再自己捋捋吧。
你这个计算器有个提交到自己的表单,还有段处理提交信息的PHP逻辑,其实展示表单和处理表单数据是两次请求,搞清楚这个原理再自己捋捋吧。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-12
展开全部
移到table之后的话,你的一些个变量值就不能对应了吧,
比如$sum,$message等,
比如$sum,$message等,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询