Javascript html输入字段中带双引号的字符串显示为&;引用
我从sql获取数据,并使用php为每个条目的编辑按钮生成javascript。编辑界面使用表单中的文本输入。单击“生成的编辑”按钮时,此字段中的文本设置为等于sql中条目的名称 除名称包含双引号(“)外,这种方法在所有情况下都可以正常工作,在这种情况下,文本字段中的引号将替换为“.” php通用javascript如下所示:Javascript html输入字段中带双引号的字符串显示为&;引用,javascript,php,html,sql,Javascript,Php,Html,Sql,我从sql获取数据,并使用php为每个条目的编辑按钮生成javascript。编辑界面使用表单中的文本输入。单击“生成的编辑”按钮时,此字段中的文本设置为等于sql中条目的名称 除名称包含双引号(“)外,这种方法在所有情况下都可以正常工作,在这种情况下,文本字段中的引号将替换为“.” php通用javascript如下所示: function editButton($suffix,$name) { echo "<button class=\"edit\" onclick=\"
function editButton($suffix,$name)
{
echo "<button class=\"edit\" onclick=\"editMode$suffix()\">Edit</button>";
echo "<script>
<!--
function editMode$suffix(){
document.getElementById(\"title\").innerHTML = \"Edit Artist\"
var main = document.getElementById(\"main\");
main.style.display = 'none';
var edit = document.getElementById(\"edit\");
edit.style.display = 'block';
//Set the input of the edit interface to be equal to the current name
document.getElementById(\"editInput\").value = \"$name\";
document.getElementById(\"artEdit\").value = \"$name\";
}
-->
</script>";
}
函数编辑按钮($suffix,$name)
{
回应“编辑”;
回声“
";
}
$name变量在传递给函数之前通过htmlentities()进行清理。如果不这样做,带引号的条目的编辑界面甚至不会显示
我发现这听起来像是同一个问题,但没有解决方案():/
如果有人有一个解决方案,或者可以指出我所做的一些愚蠢的事情导致了这一点,我将非常感激。在这一点上,我将不得不禁用双引号的数据库条目并限制为单引号。只需将JavaScript部分中的所有双引号更改为单引号,然后在
$name
variab上使用乐:
function editButton($suffix, $name)
{
$name = addslashes( html_entity_decode($name) );
echo "<button class='edit' onclick='editMode$suffix()'>Edit</button>";
echo "<script>
<!--
function editMode$suffix() {
document.getElementById('title').innerHTML = 'Edit Artist'
var main = document.getElementById('main');
main.style.display = 'none';
var edit = document.getElementById('edit');
edit.style.display = 'block';
//Set the input of the edit interface to be equal to the current name
document.getElementById('editInput').value = '$name';
document.getElementById('artEdit').value = '$name';
}
-->
</script>";
}
函数编辑按钮($suffix,$name)
{
$name=addslashes(html_entity_decode($name));
回应“编辑”;
回声“
";
}
*也被添加以将实体转换回它们的初始状态。考虑删除<代码> HTMLTENTIMSe()/<代码>,在这种情况下,可以移除<代码> HTML.EntYySqDeh()。来自上面的脚本。
太棒了,谢谢你是个救命恩人。我尝试过切换到单引号,但没有意识到addslashes函数,非常有用。奇怪的是,我尝试使用str_replace来做同样的事情,但没有成功。