Php 将文本框1和2的总和放入文本框3

Php 将文本框1和2的总和放入文本框3,php,Php,我有三个文本框,我想在文本框1和2中放置一个值,然后将它们相加,并在文本框3中得到结果。使用下面的代码,我可以让它在屏幕上回音,但如果我忽略回音,那么在T1和T2中放置数字后,什么也不会发生。 谁能告诉我我做错了什么 <html> <head> <title>My Page</title> </head> <body> <br> <form name="myform" action=

我有三个文本框,我想在文本框1和2中放置一个值,然后将它们相加,并在文本框3中得到结果。使用下面的代码,我可以让它在屏幕上回音,但如果我忽略回音,那么在T1和T2中放置数字后,什么也不会发生。 谁能告诉我我做错了什么

<html>
<head>
    <title>My Page</title>
</head>
<body>
    <br>
    <form name="myform" action="textentry2.php" method="POST">
        <input type = "submit" name = "submit" value = "go">
        <input type = "text" name = "text1" >
        <input type = "text" name = "text2" >
        <input type = "text" name = "text3"  >

<?php

$text_entry = $_POST['text1'];
$text_entry2 = $_POST['text2'];
$text_entry3 = $_POST['text3'];

{
   $text_entry3 = ($text_entry + $text_entry2);
   echo ($text_entry3);
}

?>
对于字符串: 在php中,可以将字符串与字符串组合在一起。在他们之间

对于整数: 你需要在从中获得字符串时对它们进行转换,如果不进行转换,它们就不会那么容易地组合在一起

放置时: 正如Aravona所说,allready: 您应该在输出html之前进行所有计算。Php是动态的。HTML不是。因此,您需要将动态部分放入静态部分

在开始时进行,然后使用此选项输出结果:

<input type = "text" name = "text3" value="<?=$text_entry3;?>" >

首先,将PHP放在HTML之上,以便定义值。 然后:

在T1和T2中放置数字后,不会发生任何事情

PHP是一种服务器端语言。你不能期望PHP实时运行

输入值需要转到服务器,然后PHP服务器可以在服务器上计算您的值,然后刷新后,结果出来

如果你想写一个实时计算器,你需要用javaScript来写。当然,您可以使用AJAX或其他任何工具来实现这一点,但javaScript是一种简单快捷的方法

试试这个:

我的页面 函数计算 { var elm=document.forms[myform]; 如果elm[text1].value!=&elm[text2].value!= {elm[text3]。value=parseIntelm[text1]。value+parseIntelm[text2]。value;} }
我想你的代码应该是这样的:

<?php
$text_entry1 = (int)$_POST['text1'];
$text_entry2 = (int)$_POST['text2'];
$text_entry3 = ($text_entry1 + $text_entry2);
?>
<html>
    <head>
        <title>My Page</title>
    </head>

    <body>
        <br>
        <form name="myform" action="textentry2.php" method="POST">
        <input type = "submit" name = "submit" value = "go">
        <input type = "text" name = "text1" value = "<?php echo $text_entry1 ?>" >
        <input type = "text" name = "text2" value = "<?php echo $text_entry2 ?>" >
        <input type = "text" name = "text3" value = "<?php echo $text_entry3 ?>" >
        </form>
    </body>
</html>
<?php

// First make sure that the variable is defined, to prevent notices
// when trying to use it later.
$answer = '';

// If something has been posted (submitted).
if (!empty ($_POST)) {
    // Calculate the answer.
    // TODO: Add some validation to make sure that the values are indeed numbers.
    // See filter_var () in the PHP manual.
    $answer = $_POST['text1'] + $_POST['text2'];
}

?>
<html>
<head>
<title>My Page</title>
</head>
<body>
<form name="myform" action="textentry2.php" method="POST">
    <input type="submit" name="submit" value = "go">
    <input type="number" name="text1" >
    <input type="number" name="text2" >
    <input type="number" name="text3" value="<?php echo $answer; ?>">
</form>

我倾向于给那些不熟悉PHP的人一个非常好的提示,就是把所有PHP代码放在任何HTML之前。这意味着,在尝试向客户端发送任何内容之前,您将负责所有的数据处理。这样做的美妙之处在于,如果出现了一些错误的情况,您可以简单地重定向或执行任何必要的操作,为用户提供清晰且信息丰富的响应。而不是仅仅用一个丑陋的错误或几个中间的页面来创建一个半创建的页面。

因此,您的PHP代码应该如下所示:

<?php
$text_entry1 = (int)$_POST['text1'];
$text_entry2 = (int)$_POST['text2'];
$text_entry3 = ($text_entry1 + $text_entry2);
?>
<html>
    <head>
        <title>My Page</title>
    </head>

    <body>
        <br>
        <form name="myform" action="textentry2.php" method="POST">
        <input type = "submit" name = "submit" value = "go">
        <input type = "text" name = "text1" value = "<?php echo $text_entry1 ?>" >
        <input type = "text" name = "text2" value = "<?php echo $text_entry2 ?>" >
        <input type = "text" name = "text3" value = "<?php echo $text_entry3 ?>" >
        </form>
    </body>
</html>
<?php

// First make sure that the variable is defined, to prevent notices
// when trying to use it later.
$answer = '';

// If something has been posted (submitted).
if (!empty ($_POST)) {
    // Calculate the answer.
    // TODO: Add some validation to make sure that the values are indeed numbers.
    // See filter_var () in the PHP manual.
    $answer = $_POST['text1'] + $_POST['text2'];
}

?>
<html>
<head>
<title>My Page</title>
</head>
<body>
<form name="myform" action="textentry2.php" method="POST">
    <input type="submit" name="submit" value = "go">
    <input type="number" name="text1" >
    <input type="number" name="text2" >
    <input type="number" name="text3" value="<?php echo $answer; ?>">
</form>

通常,我会在$answer上使用htmlspecialchars作为回音,以防止XSS攻击。但是,由于它只回显一个数字,因此在这种情况下不需要。

您希望这些数字在提交后填充表单吗?将表单移动到PHP代码下面,并使用value=Thankyu获得您的回复:::这是最简单的方法,但最好使用JavaScript中的AJAX。是否更好是个人品味的问题。它是不同的,它将为用户提供即时结果,而不必通过web服务器发送。没错。然而,如果@colin正在使用上述代码学习PHP,那么在JS中使用它将毫无意义;不需要显式转换它们,PHP将在尝试将它们用作数字时自动转换它们。@ChristianF它应该这样做。但他说,随着回声的出现。因此,我假设自动转换不起作用。嗨,扎加里普尔。谢谢你的回答,你的代码很有启发性,很有效。greatHi Christain F,被所有的回复淹没了:非常感谢你的回复,非常有效非常感谢你的回复Henry,一个很好的有启发性的代码片段:
<?php

// First make sure that the variable is defined, to prevent notices
// when trying to use it later.
$answer = '';

// If something has been posted (submitted).
if (!empty ($_POST)) {
    // Calculate the answer.
    // TODO: Add some validation to make sure that the values are indeed numbers.
    // See filter_var () in the PHP manual.
    $answer = $_POST['text1'] + $_POST['text2'];
}

?>
<html>
<head>
<title>My Page</title>
</head>
<body>
<form name="myform" action="textentry2.php" method="POST">
    <input type="submit" name="submit" value = "go">
    <input type="number" name="text1" >
    <input type="number" name="text2" >
    <input type="number" name="text3" value="<?php echo $answer; ?>">
</form>