本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Pass a PHP string to a Javascript variable (and escape newlines)
因此,从本质上讲,我试图从PHP页面传递一个字符串作为javascript函数的参数。 该脚本所在的页面包含PHP,但它们位于两个单独的文件中。
但是,每当我尝试传递字符串时,它都会停止运行javascript。 我可以传递PHP整数,但不能传递字符串。 有可能解决这个问题吗? 我一直在互联网上寻找可能导致我的错误的原因,但找不到任何东西。 任何帮助将不胜感激。
这是PHP和HTML。 单击提交时该功能运行。
$comment ="7b";
echo"
这是javascript函数。
function uploadPostComment(PostCID, Comment){
var PostCommentData ="fsPostID="+PostCID;
PostCommentData +="&fsPostComment="+Comment;
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("post","uploadPostComment.php", true);
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", PostCommentData.length);
xmlHttp.setRequestHeader("Connection","close");
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
alert("Message Posted");
}
else
{
alert("Oh no, an error occured2");
}
}
};
xmlHttp.send(PostCommentData);}
请记住,如果$comment包含引号,则大多数答案都会中断。 你必须逃脱那些。
echo"
您需要引用字段。 如果您的字段是整数,则不需要用引号引起来;如果是字符串,则需要用引号引起来。 我引用这两个都是因为我不知道parentID是字符串ID还是数字ID。 当然可以执行您的应用程序需要的操作。
更新:关于迈克尔的评论,如果评论中包含引号,则打破。 现在,我们在$ comment中转义所有双引号以防止出现这种情况。
非常感谢。 正是我想要的。 让我发疯。
是您的罪魁祸首,尤其是uploadPostComment($parentID, $comment);-如果$ comment是字符串,则需要将引号放在适当位置:uploadPostComment($parentID, \"$comment\");
将字符串用转义的双引号引起来,例如\"$comment\"
$comment ="7b";
echo"
博客讨论了在PHP中传递字符串到JavaScript函数时遇到的问题,特别是当字符串包含可能破坏JavaScript的字符(如双引号)时。解决方案是正确转义字符串,确保在JavaScript中能够正确解析。作者提到了使用PHP的转义函数来处理字符串,并提供了代码示例展示如何在PHP和JavaScript之间传递数据。
236

被折叠的 条评论
为什么被折叠?



