无法将文本区域值传递给我的表单
Posted
技术标签:
【中文标题】无法将文本区域值传递给我的表单【英文标题】:Can't pass a text area value to my form 【发布时间】:2014-04-26 13:16:23 【问题描述】:我目前正在我的网站上重新设计一个页面,允许注册用户向管理员发送消息。我正在使用的所有代码在其他页面上已经完全正常运行,但是在移动所有内容之后,它已经停止工作,这让我感到困惑。
<textarea name="content" id="msgs" class="convo" ></textarea>
文本区域非常简单,表单包裹在 TR 标签周围。 我知道该表格有效,因为我还向表格提交了发送者和接收者的日期/时间和电子邮件地址。表单执行“compose.php”,成功写入数据库并重定向回客户的个人资料。问题是“新”消息是空白的。除了文本区域的内容外,所有内容都发送到表单。
如果我使用纯文本区域,那么一切正常,所以问题必须是我应用于文本区域的“所见即所得内容编辑器”,即使它在其他页面上工作正常?
bkLib.onDomLoaded
(
function()
new nicEditor(buttonList : ['bold','italic','underline','left','center','right','ol','ul','fontFamily','fontSize','fore color','link','unlink']).panelInstance('msgs');
);
有人知道我可以从哪里开始吗?我已经解决这个问题好几个小时了,它开始让我变得最好了!如果您需要任何其他 sn-ps 代码,请告诉我。
编辑
也许这会有所帮助...
<textarea name="content" id="msgs" class="convo" >TEST MESSAGE</textarea>
当页面加载时,“TEST MESSAGE”被写入文本区域。如果我提交它,值会传递给表单,然后传递给数据库等...但是如果我删除它并输入我自己的话,什么都不会发送?
【问题讨论】:
(感谢@Wireblue!)您遇到的错误是什么?我不确定问题出在内容编辑器上。 您的 PHP 是否包含任何与$content=$_POST['content'];
类似的内容?这是通常的 PHP 表单命名约定。 @CraigyCraigo
我注意到'fore color'
中间有空格。你试过删除它吗?
新页面是否使用 SSL 证书?在将站点转换为使用 SSL 时,我遇到了类似的问题。随机的东西停止工作。我很确定你会从 http://
到 https://
失去 $_POST
说实话,如果消息是发给管理员的;为什么你允许以任何方式格式化?我可以在论坛、博客或某种留言板上看到它是一个不错的功能,但是当我编写类似的脚本时,我倾向于尽可能地限制这种东西,因为害怕 XSS。而且...谁在乎我的管理员是否能看到漂亮的东西。 ckeditor.com 看起来维护得很好,并且在 github 上开源。你可能会和他们走得更远。
【参考方案1】:
我已经解决了这个问题!
旧代码是:
<form name="send" id="sndmsg" method="post" action="compose.php">
<tr>
<td class="tab"> Compose New Message</td>
</tr>
<tr>
<td>
<textarea name="content" id="msgs" class="convo" ></textarea>
</td>
</tr>
<tr>
<td>
<input name="user_s" type="hidden" id="user_s" value="<?PHP echo $user;?>" />
<input name="user_r" type="hidden" id="user_r" value="<?PHP echo $email;?>" />
<input name="fname" type="hidden" value="<?PHP echo $fullname;?>" />
<input type="image" src="/send.png" />
</td>
</tr>
</form>
这显然是行不通的。新代码确实有效,如下所示:
<tr>
<td class="tab"> Compose New Message</td>
<form name="send" id="sndmsg" method="post" action="compose.php">
<textarea name="content" id="msgs" class="convo" ></textarea>
<input name="user_s" type="hidden" id="user_s" value="<?PHP echo $user;?>" />
<input name="user_r" type="hidden" id="user_r" value="<?PHP echo $email;?>" />
<input name="fname" type="hidden" value="<?PHP echo $fullname;?>" />
<input type="image" src="/send.png" />
</form>
</td>
</tr>
【讨论】:
奇怪的行为。您是否碰巧在与默认浏览器不同的浏览器上尝试了“旧代码”? @Nazca Nope,两个实例都使用 Google Chrome。 我很高兴你能成功。但我仍然对为什么它不起作用感到困惑。我从http://nicedit.com/download.php(未压缩版本)下载了nicedit,而old code
似乎使用Chrome版本32.0.1700.76 m按预期工作以上是关于无法将文本区域值传递给我的表单的主要内容,如果未能解决你的问题,请参考以下文章
我无法将我的 v-model 数据传递到我的后端以获取 vue.js 中的单选按钮类型,如何将选中的单选按钮值传递给我的后端?