把变量从php放到html中

时间:2016-05-19 20:51:54

标签: php

我搜索过,我找不到自己的错,
我想在textarea中显示$content。我也尝试将它放入value属性,但这也不起作用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<?php
$search = array('foo','bar','foobar');
$replace = array('f**','b**','f**b**');

if (isset($_POST['cencor']) &&! empty($_POST['cencor'])){
    $content = $_POST['cencor'];
}

?>
<form action="findstring.php" method="post">
    <textarea name="cencor" rows="10" cols="80"><?php echo $content ?></textarea><br><br>
    <input type="submit" value="submit">
</form>

</body>
</html>

1 个答案:

答案 0 :(得分:2)

加载页面后,您应该在<textarea>中收到以下错误:

<b>Notice</b>: Undefined variable: content in <b>/path/to/file.php</b> on line <b>x</b><br />

然而,您并未检查错误。

您需要做的是在其中使用条件语句作为$content变量。

旁注:那里缺少的分号是完全有效的,因为之后没有传递进一步的(PHP)指令,所以让我们失去这种误解(在评论中)。

但是,如果在使用以下内容时存在条件语句,则需要它:

if(isset($content)){ echo $content }

并且会失败,因为它正在寻找陈述的结尾&#34;并抛出以下内容:

  

解析错误:语法错误,意外&#39;}&#39;,期待&#39;,&#39;或&#39;;&#39;在...

  • 分号是声明的结尾&#34;字符。

目前还不清楚你真正想在这里使用阵列做什么,所以我无法帮助你。

另一个旁注:

&&! empty是有效的,但为了论证,我使其更具可读性&& !empty

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

$search = array('foo','bar','foobar');
$replace = array('f**','b**','f**b**');

if (isset($_POST['cencor']) && !empty($_POST['cencor'])){
    $content = $_POST['cencor'];
}

?>
<form action="findstring.php" method="post">
    <textarea name="cencor" rows="10" cols="80"><?php if(isset($content)){ echo $content; } ?></textarea><br><br>
    <input type="submit" value="submit">
</form>

</body>
</html>

<强>脚注:

此条件声明:

if (isset($_POST['cencor']) && !empty($_POST['cencor']))

可以简化为:

if (!empty($_POST['cencor']))

没有必要使用isset(),因为!empty()足够了。

补充说明:

为了避免未定义的变量通知,您可以完成以下操作并分配&#34;没有&#34;到$content变量,这是完全有效的:

$search = array('foo','bar','foobar');
$replace = array('f**','b**','f**b**');

    if (isset($_POST['cencor']) &&! empty($_POST['cencor'])){

        $content = $_POST['cencor'];
    }

$content = "";

结束说明:

如果此处的目标是保留在浏览器会话期间输入<textarea>的值并且用户在整个网站中导航的值,那么这就是您需要使用的内容在这里,会话

例如:

PHP:

if(!empty($_POST['cencor'])){

    $_SESSION['var'] = $_POST['cencor'];
    $_POST['cencor'] = $_SESSION['var'];

}

HTML:

<textarea name="cencor" rows="10" cols="80"><?php if(isset($_SESSION['var'])){ echo $_SESSION['var']; } ?></textarea>

NOTA:如果这个答案没有解决你想要达到的目标,你需要详细说明你的问题。