我是网络技术的绝对初学者。我知道我的问题很简单,但我不知道怎么做。 例如,我有一个功能:
function addNumbers($firstNumber, $secondNumber)
{
echo $firstNumber + $secondNumber;
}
我有一张表格:
<form action="" method="post">
<p>1-st number: <input type="text" name="number1" /></p>
<p>2-nd number: <input type="text" name="number2" /></p>
<p><input type="submit"/></p>
如何在我的文本字段中输入变量并通过按下按钮并使用我写入文本字段的参数来调用我的函数? 例如,我写了5 - 第一个文本字段,10秒文本字段,然后我点击按钮,我在同一页面上得到结果15。 的 EDITED 我试过这样做:
$num1 = $POST['number1'];
$num2 = $POST['number2'];
addNumbers($num1, $num2);
但它不起作用,答案总是为0。
答案 0 :(得分:18)
您拥有的“功能”是服务器端。服务器端代码在之前和之后将数据返回到您的浏览器(通常显示为页面,但也可以是ajax request)。
您拥有的表单是客户端。此表单由您的浏览器呈现,并未与您的服务器“连接”,但可以 submit data to the server for processing 。
因此,要运行该功能,必须执行以下流程:
以下是一个示例PHP脚本示例:
<?php
function addNumbers($firstNumber, $secondNumber) {
return $firstNumber + $secondNumber;
}
if (isset($_POST['number1']) && isset($_POST['number2'])) {
$result = addNumbers(intval($_POST['number1']), intval($_POST['number2']));
}
?>
<html>
<body>
<?php if (isset($result)) { ?>
<h1> Result: <?php echo $result ?></h1>
<?php } ?>
<form action="" method="post">
<p>1-st number: <input type="text" name="number1" /></p>
<p>2-nd number: <input type="text" name="number2" /></p>
<p><input type="submit"/></p>
</body>
</html>
请注意:
<?php ... ?>
内的所有内容都由服务器执行 (在这种情况下,echo
创建此执行的唯一输出),而PHP标记之外的所有内容 - 特别是HTML代码 - 直接输出到HTTP响应。<h1>Result:...
HTML代码里面是一个PHP if
语句。这意味着第一遍不会输出此行,因为没有$result
。action
没有值,因此表单会提交到浏览器已经存在的同一页面(URL)。答案 1 :(得分:4)
您需要从$_POST
变量中收集值并将它们传递给函数。
if ($_POST) {
$number_1 = (int) $_POST['number1'];
$number_2 = (int) $_POST['number2'];
echo addNumbers($number_1, $number_2);
}
但请注意,您不应该信任用户输入,因此需要验证和清理您的输入。
答案 2 :(得分:4)
试试这个。
<?php
function addNumbers($firstNumber, $secondNumber)
{
if (isset($_POST['number1']) && isset($_POST['number2']))
{
$firstNumber = $_POST['number1'];
$secondNumber = $_POST['number2'];
$result = $firstNumber + $secondNumber;
echo $result;
}
}
?>
<form action="urphpfilename.php" method="post">
<p>1-st number: <input type="text" name="number1" /></p>
<p>2-nd number: <input type="text" name="number2" /></p>
<?php addNumbers($firstNumber, $secondNumber);?>
<p><?php echo $result; ?></p>
<p><input type="submit"/></p>
答案 3 :(得分:1)
变量将在$ _POST变量中。
要将其解析为您需要执行此操作的功能:
addNumbers($_POST['number1'],$_POST['number2']);
请务必检查输入,用户可以在其中添加所需内容。例如,使用is_numeric()函数
$number1 = is_numeric($_POST['number1']) ? $_POST['number1'] : 0;
另外,不要在函数内部回显,最好将其返回:
function addNumbers($firstNumber, $secondNumber)
{
return $firstNumber + $secondNumber;
}
// check if $_POST is set
if (isset($_POST['number1']) && isset($_POST['number2']))
{
$number1 = is_numeric($_POST['number1']) ? $_POST['number1'] : 0;
$number2 = is_numeric($_POST['number2']) ? $_POST['number2'] : 0;
echo addNumbers($_POST['number1'],$_POST['number2']);
}
答案 4 :(得分:1)
您缺少
中的下划线$_POST['number1']
就是这样。
答案 5 :(得分:0)
也许有点晚了 但您可以在php文件的网址中设置一个参数来发布示例:
在html中:
params
在php中:
...
<form action="Controllers/set_data.php?post=login" method="post" >
...