post未定义
来源:2-13 作业题
weixin_慕沐1378591
2020-04-15 15:36:47
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<!--
步骤一:在这个PHP文件中混编html代码,实现输入行数的input框以及“金字塔”和“空心菱形”的button按钮。
注意:
button按钮需设置value值,方便区分页面点击button按钮出现对应的图案。
form表单的提交地址是当前页面。
步骤二:金字塔实现步骤:
1、在PHP部分,首先接受表单POST方式的传参,判断参数是否是金字塔,如果是金字塔参数,那么就执行实现金字塔的循环。
2、实现每行相对前一行多2个*的规律。
首先,接受页面传过来的层数n,循环n,在这个循环中先打印一个由空格组成的倒直角三角形,注意可能有些浏览器对   与 * 的大小解析不相等,所以这里可以输出隐藏样式(style=”color:#FFF;”)的*来保证在浏览器页面呈现的是一个完全的倒三角。
其次,在层循环中打印一个由星号组成的等腰三角形,三角形星星的个数=2*层数-1。
最后,输出换行即可。
步骤三:空心菱形实现步骤:
1、在PHP部分,首先接受表单POST方法的传参,判断参数是否是空心菱形,如果是空心菱形参数,那么就执行实现空心菱形的循环。
2、用循环实现一个第一行和最后一行是一颗星星,其余中间每一行是行头,行尾各一颗星星的菱形的形状。
参考实现思路:
实现菱形的上半部分(想象一个空心的无底边三角形)。
首先,接受页面传过来的层数,循环这个层数。
其次,在层数的循环中,先打印一个空的倒直角三角,然后打印一个实心型三角,判断输出行首行尾的星星,中间部分直接打印出空。
最后,给每层打印换行。
实现菱形的下半部分(想象成一个空心的无底边的倒三角形)。
首先,在层数的循环中,先打印一个空的倒三角,然后打印一个实心型三角,同样判断输出行首行尾的星星,中间部分直接打印出空。
(注意循环层数的条件的变化)。
其次,给每层打印换行
-->
<form action="homework20200415.php" method="post">
<input type="number" name="text" placeholder="请输入要打印的行数">
<input type="submit" name="act1" value="金字塔">
<input type="submit" name="act2" value="空心菱形">
</form>
<?php
$act1=$_POST['act1'];
$act2=$_POST['act2'];
// 判断用户是否点击了三角形按钮
if ($act1){
// 判断是否数据正确
$num=$_POST['num'];
if (($num)<=0){
for ($i=1;$i<=$num;$i++){
for ($k=1;$k<=$num-$i;$k++){
echo ' ';
}
for ($j=1;$j<=($i-1)*2+1;$j++){
echo '*';
}
echo "\n";
}
}
}
// 判断用户是否点击了菱形按钮
if ($act2){
// 判断是否数据正确
$num=$_POST['num'];
if (is_numeric($num)){
for($i=1;$i<=$num;$i++){
for($s=1;$s<=$num-$i;$s++){//输出空格
echo ' ';
}
for($j=1;$j<=2*$i-1;$j++){
if($j==1||$j==2*$i-1){//输出星号
echo '*';
}else{//输出星号里的空格
echo ' ';
}
}
echo "\n";
}
for ($i=$num-1; $i>=1 ; $i--) {
for($s=0;$s<=$num-1-$i;$s++){
echo ' ';
}
for($j=1;$j<=2*$i-1;$j++){
if($j==1||$j==2*$i-1){
echo '*';
}else{
echo ' ';
}
}
echo "\n";
}
}else{
echo '请输入正整数';
}
}
?>
</body>
</html>
感觉没问题唉,但是就是报错
1回答
你好,需要注意的是html 和php混编,请求PHP应该放在文件头部,建议参考代码如下:
<?php
$act1=$_POST['act1'];
$act2=$_POST['act2'];
// 判断用户是否点击了三角形按钮
if ($act1){
// 判断是否数据正确
// $num=$_POST['num'];
$num=$_POST['text'];
// if (($num)<=0){
if (($num)>=0){
for ($i=1;$i<=$num;$i++){
for ($k=1;$k<=$num-$i;$k++){
// echo '';
echo " ";
}
for ($j=1;$j<=($i-1)*2+1;$j++){
echo '*';
}
// echo "\n";
echo '<br/>';
}
}
}
// 判断用户是否点击了菱形按钮
if ($act2){
// 判断是否数据正确
// $num=$_POST['num'];
$num=$_POST['text'];
if (is_numeric($num)){
for($i=1;$i<=$num;$i++){
for($s=1;$s<=$num-$i;$s++){//输出空格
// echo ' ';
echo " ";
}
for($j=1;$j<=2*$i-1;$j++){
if($j==1||$j==2*$i-1){//输出星号
echo '*';
}else{//输出星号里的空格
// echo ' ';
echo " ";
}
}
// echo "\n";
echo '<br/>';
}
for ($i=$num-1; $i>=1 ; $i--) {
for($s=0;$s<=$num-1-$i;$s++){
// echo ' ';
echo " ";
}
for($j=1;$j<=2*$i-1;$j++){
if($j==1||$j==2*$i-1){
echo '*';
}else{
// echo ' ';
echo " ";
}
}
// echo "\n";
echo '<br/>';
}
}else{
echo '请输入正整数';
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<!--
步骤一:在这个PHP文件中混编html代码,实现输入行数的input框以及“金字塔”和“空心菱形”的button按钮。
注意:
button按钮需设置value值,方便区分页面点击button按钮出现对应的图案。
form表单的提交地址是当前页面。
步骤二:金字塔实现步骤:
1、在PHP部分,首先接受表单POST方式的传参,判断参数是否是金字塔,如果是金字塔参数,那么就执行实现金字塔的循环。
2、实现每行相对前一行多2个*的规律。
首先,接受页面传过来的层数n,循环n,在这个循环中先打印一个由空格组成的倒直角三角形,注意可能有些浏览器对   与 * 的大小解析不相等,所以这里可以输出隐藏样式(style=”color:#FFF;”)的*来保证在浏览器页面呈现的是一个完全的倒三角。
其次,在层循环中打印一个由星号组成的等腰三角形,三角形星星的个数=2*层数-1。
最后,输出换行即可。
步骤三:空心菱形实现步骤:
1、在PHP部分,首先接受表单POST方法的传参,判断参数是否是空心菱形,如果是空心菱形参数,那么就执行实现空心菱形的循环。
2、用循环实现一个第一行和最后一行是一颗星星,其余中间每一行是行头,行尾各一颗星星的菱形的形状。
参考实现思路:
实现菱形的上半部分(想象一个空心的无底边三角形)。
首先,接受页面传过来的层数,循环这个层数。
其次,在层数的循环中,先打印一个空的倒直角三角,然后打印一个实心型三角,判断输出行首行尾的星星,中间部分直接打印出空。
最后,给每层打印换行。
实现菱形的下半部分(想象成一个空心的无底边的倒三角形)。
首先,在层数的循环中,先打印一个空的倒三角,然后打印一个实心型三角,同样判断输出行首行尾的星星,中间部分直接打印出空。
(注意循环层数的条件的变化)。
其次,给每层打印换行
-->
<form action="test.php" method="post" >
<input type="number" name="text" placeholder="请输入要打印的行数">
<input type="submit" name="act1" value="金字塔">
<input type="submit" name="act2" value="空心菱形">
</form>
</body>
</html>如果解决您的问题请采纳,祝学习愉快!
相似问题