Php 在javascript变量中获取非常大的字符串

Php 在javascript变量中获取非常大的字符串,php,javascript,Php,Javascript,我正在写一个网页来阅读通知/消息,这需要我将通知作为数据库的输入。我使用php获取输入,并使用echo将其传递给javascript函数 现在的问题是,如果通知非常大(>1000个字符或更多),函数将停止工作。有没有办法在javascript变量中存储大字符串 先谢谢你 javascript函数如下所示: function display(subject, notice, from,to) { alert(notice); document.getElementById('rea

我正在写一个网页来阅读通知/消息,这需要我将通知作为数据库的输入。我使用php获取输入,并使用echo将其传递给javascript函数

现在的问题是,如果通知非常大(>1000个字符或更多),函数将停止工作。有没有办法在javascript变量中存储大字符串

先谢谢你

javascript函数如下所示:

function display(subject, notice, from,to)
{
    alert(notice);
    document.getElementById('reader_default').innerHTML='';
    document.getElementById('subject').innerHTML="SUBJECT : "+subject;
    document.getElementById('from').innerHTML="From: "+from;
    document.getElementById('to').innerHTML="To: "+to;
    document.getElementById('noticedisp').innerHTML=""+notice;
}
php变量传递如下所示:

echo '<a href="javascript:void(0)" onclick="display(\''.ucfirst($subject).'\',\''.$notice.'\',\''.ucfirst($hostel).' Hostel'.'\',\''.$toid.'\')" style="padding:2%; text-decoration:none; color:#0033CC;">'.ucfirst($subject).'</a>'.'<br /><span style="padding:2%;"><i>From: </i>'.ucfirst($hostel).'Hostel</span><br/>'.'<br/><br/>';
echo'.
发件人:'.ucfirst($hostel)。'hostel
'.

首先,我提供了以下字符串:

Lorem ipsum dolor sit amet,是一位杰出的献身者。我们的研究对象是luctus lectus,nec为同侧门。哲人。博物馆馆长莫里斯·埃拉特(Curabitur mauris erat),馆长是一位临时馆长。Lorem ipsum dolor sit amet,是一位杰出的献身者。我是埃拉特尼布。大鼠枕后嵴间隙。在Elite aliquam mollis中的Cras vitae urna是一个欧盟nisi。无身份证的律师。埃尼安·福西布斯·因特杜姆·尼布,在欧盟的维韦拉河三角洲。无便利。整数在placerat augue

塞德·奎斯·里苏斯·多洛,在特里斯提克东部。这是一个不太简单的元素。无前庭或无前庭。莫利斯·康格先生。奥古斯将军。在蜗壳中的完整的口述(dictum lectus a ligua egestas)。这是我的座右铭

拍卖人亨德雷特(hendrerit)。黄花蒲公英。佩伦茨克的智者精英。我是尼布·胡斯托,我是沃拉,我是埃古斯塔·埃尼姆。维瓦姆斯坐在我的座位上,因为我是一名侵权者。多涅克和亨德雷雷特在一起,他是一个很好的球员。多纳克·法雷特拉·米乌特·卢克图斯·索达莱斯。请记住,这是一个很好的例子。无论是同侧还是同侧,无论是同侧还是同侧。Donec Dignessim pharetra权杖。拉齐尼亚利奥·尤伊斯莫的佩伦茨克乌尔纳艺术博物馆。不允许在id erat中使用默认值。阿利奎姆·洛雷姆·图皮斯,特里斯提克·内克·蒂奇登,拉西尼亚·西特·安特·安特

在尝试了所有操作之后,当这一切都不起作用时,我将字符串缩短为:

Lorem ipsum dolor sit amet,是一位杰出的献身者。我们的研究对象是luctus lectus,nec为同侧门。哲人。博物馆馆长莫里斯·埃拉特(Curabitur mauris erat),馆长是一位临时馆长。Lorem ipsum dolor sit amet,是一位杰出的献身者。我是埃拉特尼布。大鼠枕后嵴间隙。在Elite aliquam mollis中的Cras vitae urna是一个欧盟nisi。无身份证的律师。埃尼安·福西布斯·因特杜姆·尼布,在欧盟的维韦拉河三角洲。无便利。整数在placerat augue


这是有效的

您的数据中可能有单引号或双引号。我会将您正在回音的内容包装在
htmlspecialchars
中,这样这些和任何其他有问题的HTML字符都不会破坏您的输出

echo htmlspecialchars('<a href="javascript:void(0)" onclick="display(\''.ucfirst($subject).'\',\''.$notice.'\',\''.ucfirst($hostel).' Hostel'.'\',\''.$toid.'\')" style="padding:2%; text-decoration:none; color:#0033CC;">'.ucfirst($subject).'</a>'.'<br /><span style="padding:2%;"><i>From: </i>'.ucfirst($hostel).'Hostel</span><br/>'.'<br/><br/>');
echo htmlspecialchars(“'.
From:”.ucfirst($hostel)。“hostel
”。

);

如果javascript像字符串一样解析它,它将在换行符处断开。
您应该尝试使用[ENTER]而不是[ENTER]。

1000很小。即使10万也不足以达到极限。您的函数中一定有一些错误。好吧,在JavaScript中使用大字符串没有问题。我有一些例子,其中一个字符串包含超过1MB的数据,它就像一个符咒。为我们提供一些代码进行分析。我认为您的问题不在于消息的大小。如果您通过
GET
执行此操作,那么您的限制就存在了。尝试通过
POST
发送数据。检查是否将一些“或”与字符串一起传递。这些必须转义。否,我传递了lorem ipsum文本。它没有任何“或”。此外,我还将其包装在htmlspecialchars()中。还是不行现在一个有足够声誉的。。谢谢!:)