admin管理员组文章数量:1426007
I have a PHP snippet which generates the required output in a variable $ans1
. What I want to do is print this variable $ans1
in a <textarea>
. I tried to write the following code but it generates the output as usual and not in the textbox. The following is my PHP code:
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;
}
And following is my HTML code:
<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>
Please tell me where am I going wrong.
Adding quotes like this isnt working either
document.getElementById('txt1').value= "<?php echo htmlspecialchars($ans1);?>";
As you can see in the following image, the answer(the not bold part) should get printed in the textbox also according to my html code
I have a PHP snippet which generates the required output in a variable $ans1
. What I want to do is print this variable $ans1
in a <textarea>
. I tried to write the following code but it generates the output as usual and not in the textbox. The following is my PHP code:
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;
}
And following is my HTML code:
<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>
Please tell me where am I going wrong.
Adding quotes like this isnt working either
document.getElementById('txt1').value= "<?php echo htmlspecialchars($ans1);?>";
As you can see in the following image, the answer(the not bold part) should get printed in the textbox also according to my html code
Share Improve this question edited Apr 13, 2014 at 6:18 Akhilesh Bhatia asked Apr 13, 2014 at 5:48 Akhilesh BhatiaAkhilesh Bhatia 1321 gold badge3 silver badges11 bronze badges 9- Any error into your browser console? What is the type of this variable? – user1636522 Commented Apr 13, 2014 at 5:49
-
I ask for the type because if it's a string you'll have to add quotes around the value, something like this :
.value = '<?php echo htmlspecialchars($ans1);?>';
. Also take care to escape quotes already included into the value, unlesshtmlspecialchars()
does this job for you. – user1636522 Commented Apr 13, 2014 at 5:52 - 4 Stop posting the same answer everytime guys. – user1636522 Commented Apr 13, 2014 at 5:57
-
"Not in the textbox" is that because you're echoing the variable before using it in the JavaScript? You also specify a action to your post, so nothing will happen when you click the submit button because the pages script is halted to start the load of the new page. You need to clear the default submit behavior first, then do your javascript, and submit the form afterwards with
.submit()
See W3C School Documentation on submit() – WASasquatch Commented Apr 13, 2014 at 6:11 - 1 @JordanThompson there is no such thing as W3C School its W3Schools, more importantly note that w3c has no affiliation with W3School. – Musa Commented Apr 13, 2014 at 6:17
4 Answers
Reset to default 2You can add the text you want to be displayed in the textarea between the <textarea>
tag.
<textarea name="txt1" cols="66" rows="10" id="txt1">
<?php echo $ans1; ?>
</textarea>
If the text still doesn't appear or you get an error then make sure you access variables from the global scope. Like below.
<textarea name="txt1" cols="66" rows="10" id="txt1">
<?php echo $GLOBALS['ans1']; ?>
</textarea>
You need to add quotes
around the echoed value:
document.getElementById('txt1').value = "<?php echo htmlspecialchars($ans1);?>";
And your script should be situated in <head>
Edit
What about using this:
document.getElementById('txt1').value = "<?php Print($ans1); ?>";
You didn't surround the php with quotes. The following works:
<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>
Your question is not a PHP problem. You can't see any output from the function because your script is halted upon submission! So change the submit buttons to type="button"
and add a ID, then use the script below. Using jQuery (to minimize t he code you need to write) and use a timeout to actually have time for the function be able to display the results.
$(".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
本文标签: javascriptPrinting a PHP variable in HTML textareaStack Overflow
版权声明:本文标题:javascript - Printing a PHP variable in HTML textarea - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745420096a2657861.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论