0

遇到有人问这个问题

如何将变量向上传递到页面(在同一页面上?)。

我有一个想法,但想不出自己该怎么做,所以我想知道这是否可能?

所以他试图做的是同时改变$a页面顶部的值和底部的值$a

可能吗?如果有怎么办?

先谢谢了。

<?php
echo("Begining " . $a);
?>
<html>

<head>
<title>Test Variables</title>
</head>

<body>
<form>
<form action="<?=$PHP_SELF?>" method="POST">
<input type="TEXT" name="testf" size="10">
<input type="submit" name = "submit" value = "submit"></form><?php
if ("submit" == $submit) {
$a = $testf;
echo( "Bottom " . $a);
}
?>
</body></html>

编辑:

看到答案后,也许可以用jquery、ajax或javascript来完成?

4

4 回答 4

1

不,您需要将if语句移到顶部,并且您计算的任何变量都需要在 if 语句中也移到顶部。

就像是:

<?php
if ("submit" == $submit) {
    $a = $testf;
}
echo("Begining " . $a);
?>
<html>

<head>
<title>Test Variables</title>
</head>

<body>
<form>
<form action="<?=$PHP_SELF?>" method="POST">
<input type="TEXT" name="testf" size="10">
<input type="submit" name = "submit" value = "submit"></form><?php
echo( "Bottom " . $a);
?>
</body></html>

无论如何,在开始输出 HTML 之前拥有所有逻辑被认为是一种很好的做法。理想情况下,您的 HTML 应该具有尽可能少的逻辑。

更多信息:https ://stackoverflow.com/a/95027/320615和https://stackoverflow.com/a/1088791/320615

于 2013-05-17T08:56:59.937 回答
1

您可能可以向后弯腰以某种方式使其工作。

但真正的答案是在开始输出任何 HTML之前处理所有业务逻辑。您需要在代码的开头确定当前请求是否为表单提交,并相应地设置变量和 HTML 模板。切勿将业务逻辑混入 HTML 模板的中间。

于 2013-05-17T08:57:21.447 回答
0

您必须使用$_POST['testf']and$_POST['submit']变量。

并使用 isset 检查它是否存在:php manual isset

<?php
echo("Begining " . $a);
?>
<html>

<head>
<title>Test Variables</title>
</head>

<body>
<form>
<form action="<?=$PHP_SELF?>" method="POST">
<input type="TEXT" name="testf" size="10">
<input type="submit" name = "submit" value = "submit"></form><?php
if ("submit" == $submit) {
$a = $_POST['testf'];
echo( "Bottom " . $a);
}
?>
</body></html>
于 2013-05-17T08:57:19.750 回答
-1

您不能在 PHP 中执行此操作,但是一旦使用 javascript(和 jquery 使其更容易)完全加载,您就无法更改 HTML。

编辑:好的,我第一次读你的代码有点快:我不明白标签echo之前的内容<html>,看起来不对。您还想将 POST var 的值提供给$a,所以只需:

if(isset($_POST['testf'])) {
    echo $_POST['testf'];
}
于 2013-05-17T08:56:11.623 回答