Javascript 使用jquery将文本插入textarea
这里几乎没有Javascript/Jquery。我正在构建一个相对简单的电子邮件表单,我想用存储在MySQL数据库中的几个预定义模板中的一个填充该表单,并用PHP检索 选择下拉菜单是根据数据库条目描述构建的,在用户更改它时,应将主题和正文加载到适当命名的字段中 我已经成功地使用PHP在页面加载上构建javascript if语句,以便与选择菜单进行比较,并且它确实将主题加载到文本字段中。当尝试加载textarea时,整个脚本将失败Javascript 使用jquery将文本插入textarea,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,这里几乎没有Javascript/Jquery。我正在构建一个相对简单的电子邮件表单,我想用存储在MySQL数据库中的几个预定义模板中的一个填充该表单,并用PHP检索 选择下拉菜单是根据数据库条目描述构建的,在用户更改它时,应将主题和正文加载到适当命名的字段中 我已经成功地使用PHP在页面加载上构建javascript if语句,以便与选择菜单进行比较,并且它确实将主题加载到文本字段中。当尝试加载textarea时,整个脚本将失败 <script> $(document).ready
<script>
$(document).ready(function(){
$('#Template').on('change',function(){
var Template = $(this).val();
<?php
$emailQuery = "SELECT RecID,Subject,Body FROM ST_Email ORDER BY Sort ASC";
$emailResults = mysqli_query($connect, $emailQuery);
while ($ERow = mysqli_fetch_array($emailResults))
{
$RecID = $ERow['RecID'];
$EmailContents = addslashes($ERow['Body']);
$Subject = $ERow['Subject'];
echo "if (Template == $RecID)
{
$(\"#Subject\").val(\"$Subject\");
$(\"#EmailContents\").val(\"$EmailContents\");
}
";
}
?>
});
});
</script>
稍后,在HTML/PHP中
echo "<p>Please choose an email template from this pulldown menu:</p>
<p><select name=\"Template\" id=\"Template\"><option>-- Blank --</option>";
$emailTemplateQuery = "SELECT RecID,Description FROM ST_Email ORDER BY Sort ASC";
$emailTemplateResult = mysqli_query($connect, $emailTemplateQuery);
while ($ETRow = mysqli_fetch_array($emailTemplateResult))
{
$Description = stripslashes($ETRow['Description']);
$RecID = $ETRow['RecID'];
echo "<option value=\"$RecID\">$Description</option>";
}
echo "</select></p>";
?>
Subject line: <input type="text" name="Subject" size="94" id="Subject" />
<p>Contents of message:</p>
<p><textarea name="EmailContents" rows="26" cols="94" id="EmailContents"></textarea>
<input type="submit" name="Send Email" value="Send Email"/>
当然,$EmailContents的内容将包括换行符、一些特殊标点符号和大量文本。我最初确实尝试使用AJAX和JSON来实现这一点,但没有任何效果
从我所读到的内容来看,.valfoo方法应该适用于textareas,但它不适用于我。我希望用户选择一个电子邮件模板,修改文本,然后提交表单
非常感谢您提供的一切帮助。我从其他堆栈溢出问题和答案中学到了很多,但这一个让我感到困惑。您的代码非常狡猾,但在我看来很好。然而,我确实知道是什么线打破了它
$(\"#Subject\").val(\"$Subject\");
$(\"#EmailContents\").val(\"$EmailContents\");
假设您有一个包含以下内容的电子邮件模板:
你好
现在,如果通过PHP将此内容插入到JavaScript中,它将中断val函数,因为它将结束字符串参数:
$(\"#EmailContents\").val(\"Hello"");
要确认这就是问题所在,请打开开发人员控制台,在“源代码”选项卡下打开JS文件,看看是否是这一问题造成的。非常感谢。我在数据库内容中没有找到任何引号,但发现换行符和回车符破坏了代码。现在开始尝试找出如何改变这一点,使它将工作。。。