如果在用户浏览器中启用了javascript,我想使用ajax填充一个文本区域,但如果禁用了js,则使用php。问题是,ajax和php都将执行,从而为输入的每个输入创建一个double。我尝试了一个noscript标签,但没有打印出来。如果有任何帮助,我将不胜感激。
这是我的html:
<form action="savemessage.php" method="post" id="mainChat" name="mainChat"
onsubmit="return loadChat();">
<textarea class="historyClass" id="historyFieldjs" name="historyFieldjs" rows="40" cols="80">
<noscript>
<textarea class="historyClass" id="historyField" name="historyField" rows="40" cols="80">
<?php
echo "stuff";
?>
</textarea></noscript>
和javascript:
function loadChat()
{
var xmlhttp = new XMLHttpRequest;
xmlhttp.open("GET", "getmessages.php", true);
xmlhttp.send();
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
var results = JSON.parse(xmlhttp.responseText);
var i;
for(i=0; i<results.length; i++)
{
document.getElementById("historyFieldjs").value=
document.getElementById("historyFieldjs").value+result[i]+"'n";
}
}
}
return false;
}
一个解决方案是始终让PHP填充字段。然后,当您的页面加载时,如果启用了JavaScript,它可以清除字段,然后将数据加载到其中。