我有一个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代码打印在文本框中
答案 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 强>