在PHP在,怎么把表单中的数据作为参数传递给自定义函数,如:在A.php中输入两个数和一个运算符,
然后提交给B.php,在B页面中定义一个函数,接收用户输入的两个数和运算符,进行运算后把结果返回运行时出现错误:Notice:Undefinedindex:num1inD...
然后提交给B.php,在B页面中定义一个函数,接收用户输入的两个数和运算符,进行运算后把结果返回
运行时出现错误:
Notice: Undefined index: num1 inD:\myweb\phplx\jishuan.phpon line21
A.php 代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>计算机加减乘除</title>
</head>
<body>
<form action="funcs.php" method="post" name="form_js">
<span>请输入第一个数:</span><input type="text" name="num1" size="20" /><br /><br />
<span>请输入第二个数:</span><input type="text" name="num2" size="20" /><br /><br />
<span>请选择运算符号:</span><select name="oper">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br /><br />
<input type="submit" value="计算结果" /><br /><br />
<?php
require_once 'funcs.php';
$num1=$_REQUEST["num1"];
$num2=$_REQUEST["num2"];
$oper=$_REQUEST["oper"];
echo '计算结果是:'.jishuan($num1,$num2,$oper);
?>
</body>
</html>
B.php 代码
<?php
//function 定义一个函数jishuan()
function jishuan(&$num1,&$num2,&$oper)
{
$res=0;
switch($oper)
{
case "+":
$res=$num1+$num2;
break;
case "-":
$res=$num1-$num2;
break;
case "*":
$res=$num1*$num2;
break;
case "/":
$res=$num1/$num2;
break;
default:
echo '运算符错误';
}
//return 返回计算结果
return $res;
}
?> 展开
运行时出现错误:
Notice: Undefined index: num1 inD:\myweb\phplx\jishuan.phpon line21
A.php 代码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>计算机加减乘除</title>
</head>
<body>
<form action="funcs.php" method="post" name="form_js">
<span>请输入第一个数:</span><input type="text" name="num1" size="20" /><br /><br />
<span>请输入第二个数:</span><input type="text" name="num2" size="20" /><br /><br />
<span>请选择运算符号:</span><select name="oper">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br /><br />
<input type="submit" value="计算结果" /><br /><br />
<?php
require_once 'funcs.php';
$num1=$_REQUEST["num1"];
$num2=$_REQUEST["num2"];
$oper=$_REQUEST["oper"];
echo '计算结果是:'.jishuan($num1,$num2,$oper);
?>
</body>
</html>
B.php 代码
<?php
//function 定义一个函数jishuan()
function jishuan(&$num1,&$num2,&$oper)
{
$res=0;
switch($oper)
{
case "+":
$res=$num1+$num2;
break;
case "-":
$res=$num1-$num2;
break;
case "*":
$res=$num1*$num2;
break;
case "/":
$res=$num1/$num2;
break;
default:
echo '运算符错误';
}
//return 返回计算结果
return $res;
}
?> 展开
2个回答
展开全部
你不能提交给funcs.php,直接提交给本页面就可以,将a.php的代码改一下,如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>计算机加减乘除</title>
</head>
<body>
<form action="" method="post" name="form_js">
<span>请输入第一个数:</span><input type="text" name="num1" size="20" /><br /><br />
<span>请输入第二个数:</span><input type="text" name="num2" size="20" /><br /><br />
<span>请选择运算符号:</span><select name="oper">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select><br /><br />
<input name="submit" type="submit" value="计算结果" /><br /><br />
<?php
if(isset($_POST['submit']) && $_POST['submit'])
{
require_once 'funcs.php';
$num1=$_REQUEST["num1"];
$num2=$_REQUEST["num2"];
$oper=$_REQUEST["oper"];
echo '计算结果是:'.jishuan($num1,$num2,$oper);
}
?>
</body>
</html>
更多追问追答
追问
谢谢这位大哥对小弟的关注,如果直接提交给本页面一切正常,但是B页面就是一个函数,假如有多个页面需要调用这个函数,而且参数需要从表单中获取传递该如何解决呢?还请大哥指教!
追答
你要明白,你那个就是写的一个函数,
函数,不应该自己去接收表单或问号传递过来的参数,而是在调用函数时传递过来的,
如果函数自己接表单参数,那么你函数里接收的这些值还有什么意义呢?何必限制了呢?
function jishuan(&$num1,&$num2,&$oper)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询