Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery将文本插入textarea_Javascript_Php_Jquery_Html_Mysql - Fatal编程技术网

Javascript 使用jquery将文本插入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

这里几乎没有Javascript/Jquery。我正在构建一个相对简单的电子邮件表单,我想用存储在MySQL数据库中的几个预定义模板中的一个填充该表单,并用PHP检索

选择下拉菜单是根据数据库条目描述构建的,在用户更改它时,应将主题和正文加载到适当命名的字段中

我已经成功地使用PHP在页面加载上构建javascript if语句,以便与选择菜单进行比较,并且它确实将主题加载到文本字段中。当尝试加载textarea时,整个脚本将失败

<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文件,看看是否是这一问题造成的。

非常感谢。我在数据库内容中没有找到任何引号,但发现换行符和回车符破坏了代码。现在开始尝试找出如何改变这一点,使它将工作。。。