javascript - 传递给查看 PHP-JS 时,HTML 标记未正确呈现

标签 javascript php jquery html

您好,我正在使用 codeigniter 框架,

我正在使用 ajax 请求从数据库获取数据并显示在 View 中。

    var from_date = jQuery('#form_date').val();
    var to_date = jQuery('#to_date').val();

    jQuery.ajax({
        url:base_url+"index.php/eod_report/search_to_date",
        type:"POST",
        data:{from_date:from_date,to_date:to_date},
        //datatype:'json',
        success:function(data){

            jQuery("#report_container").html(data); 
        }

我的 Controller 是

public function search_to_date()
{
    $from_date = $this->input->post('from_date');
    $to_date = $this->input->post('to_date');

    $where_array = array('eod.created_time >='=>$from_date,'eod.created_time <='=>$to_date);

    $eod_report_data = $this->eod_data->get_eod_report_data($where_array);
    $eod_total_report_data = $this->eod_data->get_eod_total_report_data($where_array);

    $formated_eod_report_data = $this->format_eod_report_array($eod_report_data);
    krsort($formated_eod_report_data);

    $formated_eod_all_report_data= $this->format_all_eodreport_array($eod_total_report_data);
    krsort($formated_eod_all_report_data);

    $data = array('eod_data'=>$formated_eod_report_data,'eod_all_data'=>$formated_eod_all_report_data);

    $html = $this->load->view('eod-report-partial',$data,true);

    echo  json_encode($html);
}

eod-report-partial View

<table width="100%" align="center" border="1">
<thead>
    <tr>
     <td>ShopCode</td>
      <td>Submitted By</td>
      <td>RMS</td>
      <td>ORM</td>
      <td>ORM Profit</td>
      <td>Total</td>  
      <td>Cash</td>
      <td>Card</td>
      <td>Opening Balance</td>
      <td>Purchase Today</td>       
      <td>Final Total</td>
      <td>T.Till Cash</td>
      <td>Difference</td>      
      <td>Nxt Day Op&nbsp;Balance</td>
      <td>Petty Cash</td>
      <td>Banking</td>  
    </tr>
</thead>
<tbody>

<?php foreach($eod_data as $key=>$eods)  {?>
    <tr><td colspan="8""><?php echo $key; ?></tr>
    <?php foreach($eods as $eod) { ?>
    <tr>
     <td><?php echo $eod['shop_code']; ?></td>
      <td><?php echo $eod['first_name']; ?></td>
      <td><?php echo $eod['rms_sell'];?></td>
      <td><?php echo $eod['orm_repair']; ?></td>
      <td><?php echo $eod['orm_repair'];?></td>
      <td><?php echo $eod['total']; ?></td>
      <td><?php echo $eod['cash']; ?></td>  
      <td><?php echo $eod['card']; ?></td>
      <td><?php echo $eod['opening_bal']; ?></td>
      <td><?php echo $eod['purchases']; ?></td>
      <td><?php echo $eod['final_total']; ?></td>
      <td><?php echo $eod['till_total']; ?></td>       
      <td><?php echo $eod['difference']; ?></td>
      <td><?php echo $eod['nextday_opening_bal']; ?></td>
      <td></td>      
      <td><?php echo $eod['banking']; ?></td>
    </tr>

<?php  } ?>
    <tr>
     <td></td>
      <td>Total:</td>
      <td><?php echo $eod_all_data[$key]['sum_rms_sell'];?></td>
      <td><?php echo $eod_all_data[$key]['sum_orm_repair']; ?></td>
      <td><?php echo $eod_all_data[$key]['sum_orm_repair'];?></td>
      <td><?php echo $eod_all_data[$key]['total']; ?></td>
      <td><?php echo $eod_all_data[$key]['sum_cash']; ?></td>  
      <td><?php echo $eod_all_data[$key]['sum_card']; ?></td>
      <td><?php echo $eod_all_data[$key]['sum_opening_bal']; ?></td>
      <td><?php echo $eod_all_data[$key]['sum_purchases']; ?></td>
      <td><?php echo $eod_all_data[$key]['final_total']; ?></td>
      <td><?php echo $eod_all_data[$key]['sum_till_total']; ?></td>       
      <td><?php echo $eod_all_data[$key]['difference']; ?></td>
      <td><?php echo $eod_all_data[$key]['sum_next_day_bal']; ?></td>
      <td></td>      
      <td><?php echo $eod_all_data[$key]['sum_banking']; ?></td>
    </tr>
<?php } ?>

</tbody>
</table>

问题是页面的 View 渲染是

enter image description here

如何正确呈现我的 html,提前致谢

最佳答案

在将其设置为容器中的 html 之前,您需要解码 json 对象。

var html_data = jQuery.parseJSON(data);
jQuery("#report_container").html(html_data);

请注意 jQuery.parseJSON 函数的使用是为了向后兼容没有 JSON 对象的浏览器。

您的 from_date 变量中也有错字。它在应该读取#from_date 的地方读取#form_date。

编辑

现在有一个肮脏的方法来处理它:

 html_data = jQuery.parseJSON(data);
 html_data = html_data.replace("\r\n", "").replace("\", "");
 jQuery("#report_container").html(html_data);     

关于javascript - 传递给查看 PHP-JS 时,HTML 标记未正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20602823/

相关文章:

javascript - 如何在 Blogger 中添加 JavaScript?

javascript - 如何将 css 仅应用于文本内部/或任何 <p><p> 元素中的数字?

php - joomla 中的 jquery-ias 不起作用

jquery - 单击 Accordion 中的链接打开下一节

javascript - 如何通过表单上传文件后清除输入字段

javascript - 使用预先保存的信息在网站上填写表格?

Javascript 和 HTML 填充变量

php - 如何在owncloud后端服务器上安装新模块

php - 如何检索存储在 mySQL 表中的 HTML/PHP 代码而不将 PHP 注释掉?

javascript - 从 Bootstrap 模态对话框触发单击事件