我有一个数据库中的预设电子邮件列表. “感谢您成为会员”,“感谢您在途中购买它” – 这样的东西.我正在使用Bootstrap模式来编辑这些电子邮件.当我单击编辑按钮时,模态下拉,并填充数据库中的数据:电子邮件名称,主题,正文.我用
Passing data to a bootstrap modal来完成这个.效果很好.现在我使用summernote作为我的富文本编辑器.
这是我的textarea,显示未经编辑的数据:
<textarea class="summernote input-block-level" id="content" name="content" rows="18"></textarea>
类summernote是数据如何定向到输出文本区域,以便可以编辑它.编辑完数据后,单击“提交”,然后使用下面的代码将数据提取到JavaScript.
$(document).ready(function() { $('button[id=editEmail]').on('click',function() { var $email_edbody_array = $('textarea[name="content"]').html($('#summernote').code()); var $email_edbody = $email_edbody_array.html(); console.log("edited email" + $email_edbody);
有趣的是,如果summernote文本区域为空白,这可以正常工作 – 如果我正在创建新电子邮件而不是编辑其中一封.
console.log应该输出已编辑的电子邮件正文,但它不会.它输出原始的电子邮件正文.我不知道为什么.
将编辑好的电子邮件发送到我的JavaScript中我缺少什么.以下是我认为对此问题很重要的代码的主要部分.
<?PHP while ($datarow_emails = pg_fetch_assoc($results_emails)) { echo " <tr> <td>".$datarow_emails['internal_name']."</td> <td>".$datarow_emails['email_subject']."</td> <td>".$datarow_emails['type']."</td> <td> <span class='btn btn-info btn-small open-editEmailModal' data-toggle='modal' href='#editEmail' data-inm='".$datarow_emails['internal_name']."' data-es='".$datarow_emails['email_subject']."' data-bdy='".$datarow_emails['email_body']."' data-ty=".$datarow_emails['type']." data-ces=".$datarow_emails['canned_email_sid']."> <i class='icon-edit icon-white'></i> Edit</span> <span class='btn btn-danger btn-small open-delEmailModal' data-toggle='modal'href='#deleteWarning' data-ces=".$datarow_emails['canned_email_sid']."> <i class='icon-remove icon-white'></i> Delete</span> </td> </tr>"; } ?>
下一部分是将数据重定向到模态的jQuery. .note-editable是重定向电子邮件正文的内容.
<script> $(document).on("click",".open-editEmailModal",function() { var internalName = $(this).data('inm'); var emailSubject = $(this).data('es'); var emailBody = $(this).data('bdy'); var type = $(this).data('ty'); var cannedEmSid = $(this).data('ces'); $(".modal-body #canEmSid").val(cannedEmSid); $(".modal-body #interName").val(internalName); $(".modal-body #emailSub").val(emailSubject); $(".modal-body #emailBdy").val(emailBody); $(".modal-body .note-editable").html(emailBody); $(".modal-body #tYpe").val(type); }); </script>
这是模态:
<div id="editEmail" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="emailActivityLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">Edit Canned Response</h3> </div> <div class="modal-body"> <form class="form-horizontal"> <div class="control-group" style="margin-bottom:8px;"> <label class="control-label" for="inputInternalName">Internal Name</label> <div class="controls"> <input type="text" id="interName" name="interName" placeholder="Internal Name" /> <input type="hidden" id="canEmSid" name="canEmSid"/> </div> </div> <div class="control-group" style="margin-bottom:8px;"> <label class="control-label" for="inputInternalName">Type</label> <div class="controls"> <select id="tYpe" name="tYpe"> <?PHP while ($datearow_typeDD2 = pg_fetch_assoc($results_typesDD2)) { echo "<option value='".$datearow_typeDD2['buyer_seller_sid']."'>".$datearow_typeDD2['buyer_seller_type']."</option>\n"; } ?> </select> </div> </div> <div class="control-group" style="margin-bottom:8px;"> <label class="control-label" for="inputSubject">Email Subject</label> <div class="controls"> <input type="text" id="emailSub" name="emailSub" placeholder="Email Subject"> </div> </div> </form> <!-- <div class="text-editor"></div> --> <!-- <div class="summernote"></div> --> <div id="emailEditor"> <div class="controls"> <textarea class="summernote input-block-level" id="content" name="content" rows="18"></textarea> </div> </div> </div> <div class="modal-footer"> <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button> <button class="btn btn-success" id="editEmail">Save</button> </div> </div> <script type="text/javascript"> $(document).ready(function() { $('.summernote').summernote({ }); $('button[id=editEmail]').on('click',function() { var $email_edbody_array = $('textarea[name="content"]').html($('#summernote').code()); var $email_edbody = $email_edbody_array.html();
下面是其他变量和AJAX脚本.