在PHP在,怎么把表单中的数据作为参数传递给自定义函数,如:在A.php中输入两个数和一个运算符,

然后提交给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;
}
?>

第1个回答  2013-05-22

你不能提交给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)

追问

谢谢指教!

谢谢指教!

本回答被网友采纳
第2个回答  2013-05-22
在php中想调用方法,这样写是不对的。
需要在a.php 包含b.php :include_once('b.php');

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

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

我看你这种写法还是面向过程呢,现在都用面向对象了,赶紧学学吧本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网