我想做的是使用POST方法和AJAX请求将一些文本(下面的代码中的commentText)传递给PHP页面,该方法与一些标志(what = add在下面的代码中)混合在一起,从而告诉PHP页面文字是。
我使用了post方法,因为它使我可以轻松地从PHP页面的url中恢复一些信息:
JS脚本:
xmlhttp.open("POST", "/comment.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("what=add&comment=" + commentText);
PHP文件:
if ($_POST['what'] == "add")
{
print_r($_POST['comment']);
exit();
...
}
我使用这种方法的问题是,由于使用url编码,当我进入PHP页面时,文本的格式(上面代码中的注释)消失了。例如,如果commentText为:
this is some comment.
And I have another line.
在PHP文件中,我得到:
$_POST['comment'] -> "this is some comment. And I have another line."
\ n不见了。因此,通过清晰起见的格式,我实质上是指在此特殊情况下的返回行(这是我现在想要的)。
有什么办法可以解决这个问题?我想我可以将文本作为纯文本传递,但是随后失去了使用_POST []功能轻松检索不同字段的能力。这是否意味着我必须以某种方式将数据作为纯文本传递,并在该文本中对字段进行编码?这是唯一的解决方案还是有更好的解决方案?
参考方案
因此,尽管我非常感谢大家的投入,但我想,为了记录下来,我不会添加自己的答案,而是会详细说明一些答案并描述我最终要做什么。
现在,正如Quentin所建议的那样,但没有明确指出,无论数据是通过URL传递还是以任何形式传递,最终,如果该数据(文本)显示在浏览器的页面上,则当然是HTML文本,正如他所说,在HTML中,每个\ n都被视为一个空格。
因此,无论您要做什么,如果在文本编辑器中都得到如下信息:
this is a test
on two lines
它将在浏览器中显示为this is a test on two lines
。
同样,无论您如何处理数据(在我的情况下,都是使用AJAX和post方法将其传递到PHP页面),这都是正确的。最终,PHP页面将文本的内容返回到JS脚本,并且该文本变为HTML ,因此这两行显示在一行上。
解:
我确信它们是其他方式,但是我所使用的方式确实如建议的那样解析字符串并使用HTML标签对字符串进行格式化。所以从字面上看是这样的:
var output_text = '';
for (i = 0; i < text.length; ++i) {
if (text.charAt(i) == '\n') {
output_text += '<br/'>;
}
else if ...
}
然后,我将output_text传递给PHP页面。如果PHP文本接收HTML编码的字符串不是问题,那没关系,更糟糕的是,如果您还需要在HTML编码之前存储该字符串,那么您始终可以通过以下方式将2个字符串传递给PHP页面: POST(在我的示例中为“ text”和“ output_text”)。
附言:这个问题不必投反对票,如果您这样做,请解释原因。
如果我得到url(''),我该如何使用另一个URL - javascript我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…
Javascript-从当前网址中删除查询字符串 - javascript单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…
在JavaScript函数中转义引号 - javascript我正在尝试将变量传递给javascript函数。根据用户的选择,它可以是文本或图像。这里已经讨论了类似的问题,但我无法解决。在php中,我这样编码:if ($choice == 1) { $img = '<img src = "../folder/'.$_SESSION["img"].'…
如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…
使用JS和PHP更改弹出窗口背景图像 - javascript我有一个JS函数:function zoom(now) { document.getElementById("popup").style.display = "block"; document.getElementById("photos").style.backgroundImage = …