在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;
}
?>
展开
 我来答
失落的雨毛
2013-05-22 · TA获得超过844个赞
知道小有建树答主
回答量:1074
采纳率:50%
帮助的人:940万
展开全部

你不能提交给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)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jghdream
2013-05-22 · TA获得超过374个赞
知道小有建树答主
回答量:321
采纳率:91%
帮助的人:282万
展开全部
在php中想调用方法,这样写是不对的。
需要在a.php 包含b.php :include_once('b.php');

然后用$this->jishuan($num1,$num2,$oper);

form表单的action为空就可以,应为需要提交到当前页面

我看你这种写法还是面向过程呢,现在都用面向对象了,赶紧学学吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式