如何使用php echo变量将大型html字符串解析为Javascript

如何使用php echo变量将大型html字符串解析为Javascript,javascript,php,html,echo,Javascript,Php,Html,Echo,我有一个javascript函数,它将存储在mysql数据库中的html代码显示到CKeditor中。当用户选择任何选项时,mysql查询意味着将html代码块作为php变量回显到javascript中 select选项在从javascript中选择回显变量时效果非常好。这里的问题是,当我将纯文本保存到数据库中时,它们会显示出来,但当我将html代码保存到数据库中时,javascript拒绝显示它 我尝试了几种方法将html字符串回显到javascript中,例如: <?php echo

我有一个javascript函数,它将存储在mysql数据库中的html代码显示到CKeditor
中。当用户选择任何选项时,mysql查询意味着将html代码块作为php变量回显到javascript中

select选项在从javascript中选择回显变量时效果非常好。这里的问题是,当我将纯文本保存到数据库中时,它们会显示出来,但当我将html代码保存到数据库中时,javascript拒绝显示它

我尝试了几种方法将html字符串回显到javascript中,例如:

 <?php echo json_encode($fbilling); ?> \\Accepts Only Plain Texts Not HTML Codes
'<?php echo decodeURI(rawurlencode($freply)); ?>' \\Refuses To load Page
'<?php echo htmlspecialchars_decode(rawurlencode($freply)); ?>'  \\Changes HTML Codes To Characters Like :%3Ctable%20data-module%3D%22header%22%20data
'<?php htmlspecialchars(json_encode($freply)); ?>'  \\ No Value is Displays, Just Empty
'<?php echo htmlspecialchars(json_encode($freply)); ?>' \\ No Value is Displays, Just Empty
'<?php echo htmlspecialchars(rawurlencode($freply)); ?>' \\Changes HTML Codes To Characters Like :%3Ctable%20data-module%3D%22header%22%20data
\\只接受纯文本,不接受HTML代码
''\\n拒绝加载页面
''\\n将HTML代码更改为以下字符:%3表格%20数据模块%3D%22标题%22%20数据
''\\n不显示任何值,仅为空
''\\n不显示任何值,仅为空
''\\n将HTML代码更改为以下字符:%3表格%20数据模块%3D%22标题%22%20数据
这是我的代码:

var代码=新数组(“,”);
函数更改(){
var ID=formconteudo.message.options[formconteudo.message.selectedIndex].value;
CKEDITOR.instances.editor1.setData(“”+代码[ID]+”

); }


您好,因为您有html内容,您可以按照下面的过程获取html并将其作为参数发送给函数

    <div class="col-md-4">
      <div class="form-group">
        <?php             
                            $sql3="SELECT * FROM email WHERE id='1'";
                            $result3=mysql_query($sql3) or die(mysql_error());
                            $rwsf=  mysql_fetch_array($result3);
                            $fwelcome= $rwsf[3]; 
                            $freply= $rwsf[2]; 
                            $fbilling= $rwsf[1]; 
                            $fdelivery= $rwsf[4]; 
                            ?>
        <label>Email Templates: </label>
        <select name="message" onChange="change();" class="form-control select2 required" style="width: 100%;">
          <option disabled selected>Click To Select</option>
          <option value="1">Welcome Email</option>
          <option value="2">Billing Email</option>
          <option value="3">Basic Reply Email</option>
          <option value="4">Delivery Process Email</option>
        </select>
      </div>
    </div>
    </div>


    <div class="row">
      <div class="col-md-12">
        <div class="form-group">
          <input type="text" name="subject" placeholder="Subject" class="form-control required">
        </div>
      </div>
    </div>
    <textarea id="editor1" name="editor1" rows="10" cols="80">Select your mail design from the 'Email' drop down list above.</textarea><br>

    <div class="form-wizard-buttons">
      <button type="submit" class="btn btn-success" style="border:0px"><i class="fa  fa-send"> Send Mail</i></button>
    </div>
   <div name="fwelcome_content">
     <?php echo $fwelcome; ?>
   </div>
   <div name="fbilling_content">
     <?php echo $fbilling; ?>
   </div>
   <div name="freply_content">
     <?php echo $freply; ?>
   </div>    
   <div name="fdelivery_content">
     <?php echo $fdelivery; ?>
   </div>

然后是javascript

var Code = new Array();
window.onload = function(e){     
   Code = new Array("", getHTMLContent("fwelcome_content"), getHTMLContent("fbilling_content"), getHTMLContent("freply_content"), getHTMLContent("fdelivery_content"));
}
function change() {
  var ID = formconteudo.message.options[formconteudo.message.selectedIndex].value;
  CKEDITOR.instances.editor1.setData('<p>' + Code[ID] + '</p>');
}
function getHTMLContent(elementId){
  var htmlContent = document.getElementsByName(elementId)[0].innerHTML;
  document.getElementsByName(elementId)[0].remove();
  return htmlContent;
}
var code=new Array();
window.onload=函数(e){
代码=新数组(“”,getHTMLContent(“fElcome\u内容”),getHTMLContent(“fbilling\u内容”),getHTMLContent(“freply\u内容”),getHTMLContent(“fdelivery\u内容”);
}
函数更改(){
var ID=formconteudo.message.options[formconteudo.message.selectedIndex].value;
CKEDITOR.instances.editor1.setData(“”+代码[ID]+”

); } 函数getHTMLContent(elementId){ var htmlContent=document.getElementsByName(elementId)[0].innerHTML; document.getElementsByName(elementId)[0].remove(); 返回htmlContent; }
您好,由于您有html内容,您可以按照以下过程获取html并将其作为参数发送给函数

    <div class="col-md-4">
      <div class="form-group">
        <?php             
                            $sql3="SELECT * FROM email WHERE id='1'";
                            $result3=mysql_query($sql3) or die(mysql_error());
                            $rwsf=  mysql_fetch_array($result3);
                            $fwelcome= $rwsf[3]; 
                            $freply= $rwsf[2]; 
                            $fbilling= $rwsf[1]; 
                            $fdelivery= $rwsf[4]; 
                            ?>
        <label>Email Templates: </label>
        <select name="message" onChange="change();" class="form-control select2 required" style="width: 100%;">
          <option disabled selected>Click To Select</option>
          <option value="1">Welcome Email</option>
          <option value="2">Billing Email</option>
          <option value="3">Basic Reply Email</option>
          <option value="4">Delivery Process Email</option>
        </select>
      </div>
    </div>
    </div>


    <div class="row">
      <div class="col-md-12">
        <div class="form-group">
          <input type="text" name="subject" placeholder="Subject" class="form-control required">
        </div>
      </div>
    </div>
    <textarea id="editor1" name="editor1" rows="10" cols="80">Select your mail design from the 'Email' drop down list above.</textarea><br>

    <div class="form-wizard-buttons">
      <button type="submit" class="btn btn-success" style="border:0px"><i class="fa  fa-send"> Send Mail</i></button>
    </div>
   <div name="fwelcome_content">
     <?php echo $fwelcome; ?>
   </div>
   <div name="fbilling_content">
     <?php echo $fbilling; ?>
   </div>
   <div name="freply_content">
     <?php echo $freply; ?>
   </div>    
   <div name="fdelivery_content">
     <?php echo $fdelivery; ?>
   </div>

然后是javascript

var Code = new Array();
window.onload = function(e){     
   Code = new Array("", getHTMLContent("fwelcome_content"), getHTMLContent("fbilling_content"), getHTMLContent("freply_content"), getHTMLContent("fdelivery_content"));
}
function change() {
  var ID = formconteudo.message.options[formconteudo.message.selectedIndex].value;
  CKEDITOR.instances.editor1.setData('<p>' + Code[ID] + '</p>');
}
function getHTMLContent(elementId){
  var htmlContent = document.getElementsByName(elementId)[0].innerHTML;
  document.getElementsByName(elementId)[0].remove();
  return htmlContent;
}
var code=new Array();
window.onload=函数(e){
代码=新数组(“”,getHTMLContent(“fElcome\u内容”),getHTMLContent(“fbilling\u内容”),getHTMLContent(“freply\u内容”),getHTMLContent(“fdelivery\u内容”);
}
函数更改(){
var ID=formconteudo.message.options[formconteudo.message.selectedIndex].value;
CKEDITOR.instances.editor1.setData(“”+代码[ID]+”

); } 函数getHTMLContent(elementId){ var htmlContent=document.getElementsByName(elementId)[0].innerHTML; document.getElementsByName(elementId)[0].remove(); 返回htmlContent; }
尝试var code=new数组(“,”,“,”,“,”,”)<代码>变量代码=[“”,“”,“”,“”,“”,“”,“”]
@VenkateshKonatham我已经试过了,每次我选择一个选项时它都不会响应。任何东西都无法工作或显示。或者
请停止使用不推荐使用的mysql_*API。使用mysqli_*或PDO。然后,您可以避免与此库相关的安全问题,并使用参数化查询来正确保护自己免受SQL注入攻击。尽管此处显示的查询不易受攻击,但您编写的任何依赖变量来完成查询的内容都可能遭到黑客攻击。此外,在PHP7中,mysql_uuu也被完全删除,因此每当您升级到此版本时,您的代码都将停止工作<代码>变量代码=[“”,“”,“”,“”,“”,“”,“”]
@VenkateshKonatham我已经试过了,每次我选择一个选项时它都不会响应。任何东西都无法工作或显示。或者
请停止使用不推荐使用的mysql_*API。使用mysqli_*或PDO。然后,您可以避免与此库相关的安全问题,并使用参数化查询来正确保护自己免受SQL注入攻击。尽管此处显示的查询不易受攻击,但您编写的任何依赖变量来完成查询的内容都可能遭到黑客攻击。另外,在PHP7中,mysql_uuu也被完全删除,因此每当您升级到此版本时,您的代码都将停止工作。为什么不先了解他的问题,他在将html发送到新数组时遇到问题,所以我对其进行了更改。我复制了您的源代码并将其替换为我的源代码,但它阻止了页面加载。您在调试日志中看到任何错误吗?可能有打字错误issues@DanielC. 我刚刚更新了我的答案,并在我的本地计算机上进行了测试。在问题出现之前,它的工作正如预期的那样,就是没有加载元素。因此,将一些代码移到了加载中,以确保在页面加载后获得html。对此我很抱歉为什么不
首先了解他的问题是什么,他在将html发送到新数组时面临问题,因此我对其进行了更改Bro我复制了您的源代码并将其替换为我的源代码,但它阻止了页面加载。您在调试日志中看到任何错误吗?可能有打字错误issues@DanielC. 我刚刚更新了我的答案,并在我的本地计算机上进行了测试。在问题出现之前,它的工作正如预期的那样,就是没有加载元素。因此,将一些代码移到了加载中,以确保在页面加载后获得html。对此我很抱歉