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

标签 php forms function action

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

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。 已编辑 我试过这样做:

$num1 = $POST['number1'];
$num2 = $POST['number2'];
addNumbers($num1, $num2);

但是不行,答案总是0。

最佳答案

您拥有的“功能”是服务器端。服务器端代码在且仅在数据返回到您的浏览器之前运行(通常显示为页面,但也可以是 ajax request )。

您拥有的表单是客户端。此表单由您的浏览器呈现,并未“连接”到您的服务器,但可以 submit data to the server for processing .

因此,要运行该函数,必须执行以下流程:

  1. 服务器输出带有表单的页面。无需进行服务器端处理。
  2. 浏览器加载该页面并显示表单。
  3. 用户在表单中输入数据。
  4. 用户按下提交按钮,HTTP request与数据一起发送到您的服务器。
  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>

请注意:

  • 即使此“页面”包含 PHP 和 HTML 代码,您的浏览器也永远不知道 PHP 代码是什么。它所看到的只是结果的 HTML 输出。里面的一切 <?php ... ?> 由服务器执行(在本例中,echo 创建了此次执行的唯一输出),而 PHP 标记之外的所有内容——特别是 HTML 代码——都直接输出到 HTTP 响应.
  • 您会注意到 <h1>Result:... HTML 代码 PHP if陈述。这意味着第一遍不会输出这一行,因为没有$result。 .
  • 因为表格 action没有值,表单提交到浏览器已经打开的同一页面 (URL)。

关于php - 如何从 HTML 表单运行 PHP 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5968280/

相关文章:

php - 使用 VichGeographicalBundle 在 Symfony2 中单击时不显示 Google map 信息窗口

php - 如何更改链接的样式表?

c - 使用指针在 C 中删除重复项时出错

python - 在 Python 2.7 中计算和存储函数输出?

r - 列标准偏差 R

php - json_encode 从键中删除引号?

django - 什么时候应该使用 Form/ModelForm、FormSet/ModelFormSet?

javascript - 表单提交字段为空白。使用 Javascript 隐藏和显示字段

python - Django 中带有前缀的表单中的关键错误

php - Laravel 5.3 护照的单点登录