首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从HTML表单运行PHP函数?

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

Stack Overflow用户
提问于 2011-05-12 01:36:21
回答 7查看 96.4K关注 0票数 11

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

代码语言:javascript
复制
function addNumbers($firstNumber, $secondNumber)
{
    echo $firstNumber + $secondNumber;
}

我有一张表格:

代码语言:javascript
复制
<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。编辑了我试过这样做:

代码语言:javascript
复制
$num1 = $POST['number1'];
$num2 = $POST['number2'];
addNumbers($num1, $num2);

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

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-12 01:43:33

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

您拥有的表单是客户端。此表单由您的浏览器呈现,并不“连接”到您的服务器,但可以。

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

  1. 服务器输出带有表单的页面。无需进行服务器端处理即可加载该页并显示表单。
  2. 用户在表单中键入数据。
  3. 用户按下提交按钮后,将向您的服务器创建包含数据的HTTP request
  4. 处理请求的页(可以与第一个请求相同)从请求中提取数据,运行您的函数,然后将结果输出到HTML页。<代码>H221<代码>G222

下面是一个示例PHP脚本,它可以完成所有这些任务:

代码语言:javascript
复制
<?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

  • 即使这个“页面”包含PHP和代码,您的浏览器永远不知道PHP代码是什么。它所看到的只是由此产生的HTML输出。<?php ... ?>内部的所有内容都是由服务器执行的(在本例中,echo创建了这次执行的唯一输出),而<h1>Result:...标记之外的所有内容-特别是HTML代码-都输出到HTTP响应directly.
  • You'll中。注意,PHP代码位于PHP语句中。这意味着第一次传递时不会输出此行,因为没有$result.
  • Because表单action没有值,表单提交到浏览器已在的相同页面。
票数 24
EN

Stack Overflow用户

发布于 2011-05-12 01:38:36

您需要从$_POST变量中收集这些值,并将它们传递给函数。

代码语言:javascript
复制
if ($_POST) {
  $number_1 = (int) $_POST['number1'];
  $number_2 = (int) $_POST['number2'];
  echo addNumbers($number_1, $number_2);
}

但是,需要注意的是,您不应该信任用户输入,因此需要验证和清理您的输入。

票数 4
EN

Stack Overflow用户

发布于 2011-05-12 01:48:22

尝尝这个。

代码语言:javascript
复制
  <?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>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5968280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档