簡體   English   中英

將 html 表保存到服務器 php 上的文件中

[英]Save an html table into a file on server php

我想將 html 表保存到 excel 文件中,並使用 php 將其保存在服務器上。 我使用 XMLHttpRequest 將 html 表發送到 php:

var excel_data = document.getElementById('result-table').innerHTML;

   console.log(excel_data);
   if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          =
        }
    };
     var donn = "filt="+ excel_data;

    xmlhttp.open("POST", "saveToServer.php", true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send(donn);

以下是我從 php 端檢索表的方法:

$data = $_POST["filt"];
file_put_contents('attachments/excel.xls', $data, FILE_APPEND);

這是 html 表的一部分:

<h2 id="searchResultTitle">Today's alarms</h2><table id="dataTable" class="wrap" 
style="position:relative;">
<tbody><tr><th>Raise date</th>
<th>Site</th>
<th>Severity</th>
<th>Alarm</th>
<th>Detail</th>
</tr><tr>
<td style="white-space:nowrap">2020-07-23 14:00:06</td>

<!--Issue happens here-->

<td style="font-size:11px;"><a target="_blank" rel="noopener noreferrer" href="siteDetail.php? 
id=A16X647_HAI EL BADR&amp;fich=huawei-bss-deb-alarm">A16X647_HAI EL BADR</a></td>
<td style="color:red;">Critical</td><td>Commercial Power Down _Main Power Down_</td>
<td><a target="_blank" rel="noopener noreferrer" href="alarmDetail.php?id=90455861&amp;fich=huawei- 
bss-deb-alarm">More</a></td></tr>
...

這是excel.xls內容:

<h2 id="searchResultTitle">Today's alarms</h2><table id="dataTable" class="wrap" 
style="position:relative;">
<tbody><tr><th>Raise date</th>
<th>Site</th>
<th>Severity</th>
<th>Alarm</th>
<th>Detail</th>
</tr><tr>
<td style="white-space:nowrap">2020-07-23 14:00:06</td>
<td style="font-size:11px;"><a target="_blank" rel="noopener noreferrer" href="siteDetail.php? 
id=A16X647_HAI EL BADR

我一直在努力的主要問題,我不明白為什么寫作停止在第一個<a target="_blank" rel="noopener noreferrer" href="siteDetail.php? id=A16X647_HAI EL BADR

任何幫助將不勝感激。

您正在像查詢字符串一樣發送數據,但excel_data變量包含非法字符( & ),因此在您的服務器腳本中接收到的數據是錯誤的。

var donn = "filt="+ excel_data;

xmlhttp.open("POST", "saveToServer.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(donn);

服務器正在接收:

filt=<h2 id="searchRe.....HAI EL BADR&amp;fich=huawei-bs.....

Wich 被翻譯為兩個變量:

filt = "<h2 id="searchRe.....HAI EL BADR"
amp;fich = "huawei-bs..."

您需要對表字符串進行編碼以避免這種情況。

var donn = "filt="+ encodeURIComponent(excel_data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM