如何从HTML表单运行PHP函数?

Dar*_*ria 7 php forms action function

我是网络技术的绝对初学者.我知道我的问题很简单,但我不知道怎么做.例如,我有一个功能:

function addNumbers($firstNumber, $secondNumber)
{
    echo $firstNumber + $secondNumber;
}
Run Code Online (Sandbox Code Playgroud)

我有一个表格:

<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>
Run Code Online (Sandbox Code Playgroud)

如何在我的文本字段中输入变量并通过按下按钮并按下我写入文本字段的参数来调用我的函数?例如,我写了5 - 第一个文本字段,10秒文本字段,然后我点击按钮,我在同一页面上得到结果15. 编辑 我试过这样做:

$num1 = $POST['number1'];
$num2 = $POST['number2'];
addNumbers($num1, $num2);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,答案总是0.

Nic*_*ole 18

您拥有的"功能"是服务器端.服务器端代码数据返回到浏览器之前和之后运行(通常显示为页面,但也可能是ajax请求).

您拥有的表单是客户端.此表单由您的浏览器呈现,并且不与您的服务器"连接",但可以将数据提交给服务器进行处理.

因此,要运行该功能,必须执行以下流程:

  1. 服务器输出带有表单的页面.不需要进行服务器端处理.
  2. 浏览器加载该页面并显示表单.
  3. 用户在表单中键入数据
  4. 用户按下提交按钮,会向您的服务器发送带有数据的HTTP请求.
  5. 处理请求的页面(可能与第一个请求相同)从请求中获取数据,运行您的函数,并将结果输出到HTML页面.

完成所有这些的示例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>
Run Code Online (Sandbox Code Playgroud)

请注意:

  • 即使这些"页面"包含PHP和HTML代码,您的浏览器也不会知道PHP代码是什么.它看到的只是产生的HTML输出.内部的所有<?php ... ?>内容都由服务器执行(在这种情况下,echo创建此执行的唯一输出),而PHP标记之外的所有内容 - 特别是HTML代码 - 直接输出到HTTP响应.
  • 您会注意到<h1>Result:...HTML代码 PHP if语句中.这意味着第一次传递时不会输出该行,因为没有$result.
  • 由于表单action没有值,因此表单将提交到浏览器已在其上的同一页面(URL).


mr_*_*air 5

尝试这个。

  <?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>
Run Code Online (Sandbox Code Playgroud)