Javascript 在HTML文本区域中打印PHP变量
我有一个PHP代码段,它在变量Javascript 在HTML文本区域中打印PHP变量,javascript,php,html,Javascript,Php,Html,我有一个PHP代码段,它在变量$ans1中生成所需的输出。我要做的是在中打印此变量$ans1。我试图编写以下代码,但它像往常一样生成输出,而不是在文本框中。以下是我的PHP代码: while($row = mysqli_fetch_array($result)) { if($submit3 == "Positive") { $ans1 = $row['reply_yes']; echo $ans1; } else if($submit3 == "N
$ans1
中生成所需的输出。我要做的是在
中打印此变量$ans1
。我试图编写以下代码,但它像往常一样生成输出,而不是在文本框中。以下是我的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;
}
while($row=mysqli\u fetch\u数组($result)){
如果($submit3==“正”){
$ans1=$row['reply_yes'];
echo$ans1;
}否则如果($submit3==“负”){
$ans1=$row['reply_no'];
echo$ans1;
}
回声“
”;
打破
}
下面是我的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>
函数enter()
{
document.getElementById('txt1')。值=;
}
请告诉我哪里出了问题
像这样添加引号也不起作用
document.getElementById('txt1').value= "<?php echo htmlspecialchars($ans1);?>";
document.getElementById('txt1').value=“”;
如下图所示,答案(非粗体部分)也应根据我的html代码打印在文本框中
您需要在回显值周围添加
引号
:
document.getElementById('txt1').value = "<?php echo htmlspecialchars($ans1);?>";
document.getElementById('txt1').value=“”;
您的脚本应该位于
编辑
使用这个怎么样:
document.getElementById('txt1').value = "<?php Print($ans1); ?>";
document.getElementById('txt1').value=“”;
您需要在回显值周围添加引号
:
document.getElementById('txt1').value = "<?php echo htmlspecialchars($ans1);?>";
document.getElementById('txt1').value=“”;
您的脚本应该位于
编辑
使用这个怎么样:
document.getElementById('txt1').value = "<?php Print($ans1); ?>";
document.getElementById('txt1').value=“”;
您没有用引号将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>
函数enter()
{
document.getElementById('txt1')。value=“”;
}
您没有用引号将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>
函数enter()
{
document.getElementById('txt1')。value=“”;
}
您可以在
标记之间的文本区域中添加要显示的文本
<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>
您可以在
标记之间的文本区域中添加要显示的文本
<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>
您的问题不是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
});
您的问题不是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
});
浏览器控制台中有错误吗?这个变量的类型是什么?我之所以要这个类型,是因为如果它是一个字符串,就必须在值的周围加引号,类似这样:
.value=''代码>。还要注意转义已经包含在值中的引号,除非htmlspecialchars()
为您执行此操作。不要每次都发布相同的答案。伙计们。“不在文本框中”是因为您在JavaScript中使用变量之前回显了它吗?您还为帖子指定了一个操作,因此当您单击submit按钮时不会发生任何事情,因为pages脚本将暂停以开始加载新页面。您需要首先清除默认的提交行为,然后执行javascript,然后使用.submit()
提交表单。请参阅@JordanThompson没有W3C学校或其W3C学校,更重要的是,请注意W3C与W3C学校没有关联。您的浏览器控制台中有错误吗?这个变量的类型是什么?我之所以要这个类型,是因为如果它是一个字符串,就必须在值的周围加引号,类似这样:.value=''代码>。还要注意转义已经包含在值中的引号,除非htmlspecialchars()
为您执行此操作。不要每次都发布相同的答案。伙计们。“不在文本框中”是因为您在JavaScript中使用变量之前回显了它吗?您还为帖子指定了一个操作,因此当您单击submit按钮时不会发生任何事情,因为pages脚本将暂停以开始加载新页面。您需要首先清除默认提交行为,然后执行javascript,然后使用.submit()
查看@JordanThompson提交表单没有W3C学校和W3C学校,更重要的是,请注意,w3c与W3School没有任何关联。Enter是在textarea之前通过按钮调用的。顺便说一下,这是我的答案)。使用json_encode比添加引号更好,因为它会自动为您转义任何引号。例如document.getElementById('txt1')。value=@NoGray No.htmlspecialchars()
是您使用的。尤其是将引号编码为json_encode()是不行的。除非您不想这样做,否则在这种情况下,htmlspecialchars(VAR,ENT\u NOQUOTES)
仍然会更快。这就是为什么在JSON上处理HTML时仍然使用JSON\u encode(htmlspecialchars(VAR,ENT\u NOQUOTES))
Guy