在HTML textarea中打印PHP变量

时间:2014-04-13 05:48:27

标签: javascript php html

我有一个PHP代码段,它在变量$ans1中生成所需的输出。我想要做的是在$ans1中打印此变量<textarea>。我尝试编写以下代码,但它像往常一样生成输出而不是在文本框中。以下是我的PHP代码:

while($row = mysqli_fetch_array($result)) {
    if($submit3 == "Positive") {
        $ans1 = $row['reply_yes'];
        echo $ans1;
    } else if($submit3 == "Negative") {
        $ans1 =  $row['reply_no'];
        echo $ans1;
    }
    echo "<br/>";
    break;
}

以下是我的HTML代码:

<form method="post" action="fetch_page.php">
    <input type="submit" name="submit1" value="Positive" onclick="enter()"/>
    <input type="submit" name="submit2" value="Negative" onclick="enter()"/>
    <textarea name="txt1" cols="66" rows="10" id="txt1"> </textarea>
    <script>
        function enter()
        {
           document.getElementById('txt1').value= <?php echo htmlspecialchars($ans1);?>;
        }
    </script>
</form>

请告诉我哪里出错了。

添加这样的引号也不起作用

 document.getElementById('txt1').value= "<?php echo htmlspecialchars($ans1);?>";

正如您在下图所示,答案(非粗体部分)也应根据我的html代码打印在文本框中 enter image description here

4 个答案:

答案 0 :(得分:2)

您需要在回显值周围添加quotes

document.getElementById('txt1').value = "<?php echo htmlspecialchars($ans1);?>";

您的脚本应位于<head>

修改

怎么用这个:

document.getElementById('txt1').value = "<?php Print($ans1); ?>";

答案 1 :(得分:2)

您可以在<textarea>标记之间添加要在textarea中显示的文字。

<textarea name="txt1" cols="66" rows="10" id="txt1">
    <?php echo $ans1; ?>
</textarea>

如果文本仍未显示或出现错误,请确保从全局范围访问变量。如下所示。

<textarea name="txt1" cols="66" rows="10" id="txt1">
    <?php echo $GLOBALS['ans1']; ?>
</textarea>

答案 2 :(得分:1)

你没有用引号包围php。以下作品:

    <form method="post" action="fetch_page.php">
        <input type="submit" name="submit1" value="Positive" onclick="enter()"/>
        <input type="submit" name="submit2" value="Negative" onclick="enter()"/>
        <textarea name="txt1" cols="66" rows="10" id="txt1"> </textarea>
        <script>
            function enter()
            {
                document.getElementById('txt1').value = "<?php echo htmlspecialchars($ans1); ?>";
            }
     </script>
 </form>

答案 3 :(得分:0)

您的问题不是PHP问题。您无法看到该函数的任何输出,因为您的脚本在提交时会暂停!因此,将提交按钮更改为type="button"并添加ID,然后使用下面的脚本。使用jQuery(最小化你需要编写的代码)并使用超时实际上有时间让函数能够显示结果。

 $(".button").click(function() {
      var buttonName = $(this).attr('name'),
      elm = $(this);
      $('#txt1').val( buttonName + ' was clicked.' ); // Add response
      setTimeout(function(){               
           elm.get(0).form.submit(); // Submit form           
      }, 5000); // After 5 seconds
 });

<强> JSFIDDLE