0
function getNewMonth(month, year, table) {
"use strict";
var uri, newTable;
uri = 'ajax.php?m=' + month + '&y=' + year;
$.ajax({
type: 'GET',
cache: false,
url: uri,
dataType: 'xml',
success: function (xml) {
newTable = document.importNode(xml.getElementsByTagName('table')[0], true);
$(table).replaceWith(newTable);
}
});
}
我對ajax沒有太多的瞭解,但我知道服務器中的xml是與網頁不同的文檔的一部分。沒有找到jQuery的導入方式,我使用了標準的JS importNode。jQuery ajax xml導入節點到文檔中
當這個函數運行時,舊錶被替換爲新的,但它不被渲染。文本內容將顯示,但不會顯示在呈現的表格中。
檢查元素顯示所有標記都存在,但我嘗試過的兩個瀏覽器(FireFox和Midori)都不呈現表格。
我做錯了什麼?
服務器的響應是使用標準html表格和子節點的有效XML,並且由服務器上的完全相同的php代碼生成,該代碼生成它將被替換的呈現表 - 它只是一個不同的月份和年份。
顯然有一些我不理解在這裏。
我欣賞任何建議。
編輯 -
這裏是Ajax響應的樣子:
<?xml version="1.0" encoding="UTF-8"?>
<table style="float: left; width: 800px; background: url('PNG/RitaCalendar.png') no-repeat bottom;" cellspacing="0px" class="sexycal" data-year="2016" data-month="7" data-ete="Mistress Rita" data-uri="http://www.kinkonomics.com/">
<caption><span title="Previous Month">◀</span> July 2016 <span title="Next Month">▶</span></caption>
<tr height="40px">
<th scope="col" valign="top" width="14.28%">Sunday</th>
<th scope="col" valign="top" width="14.28%">Monday</th>
<th scope="col" valign="top" width="14.28%">Tuesday</th>
<th scope="col" valign="top" width="14.28%">Humpday</th>
<th scope="col" valign="top" width="14.28%">Thursday</th>
<th scope="col" valign="top" width="14.28%">Friday</th>
<th scope="col" valign="top" width="14.28%">Saturday</th>
</tr>
<tr height="133px">
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
<td class="data" valign="top" align="right">1</td>
<td class="data" valign="top" align="right">2</td>
</tr>
<tr height="133px">
<td class="data" valign="top" align="right">3<br/><span class="mname"><a href="http://www.kinkadvisor.com/" target="_blank">Marilyn</a></span><br/><span class="wlist"><a href="http://www.amazon.com/registry/wishlist/43T049UULTFM" target="_blank">Wishlist</a></span></td>
<td class="data" valign="top" align="right">4</td>
<td class="data" valign="top" align="right">5</td>
<td class="data" valign="top" align="right">6</td>
<td class="data" valign="top" align="right">7</td>
<td class="data" valign="top" align="right">8</td>
<td class="data" valign="top" align="right">9</td>
</tr>
<!-- more of the same -->
<tr height="133px">
<td class="data" valign="top" align="right">31<br/><span class="mname"><a href="http://www.fetishphonesexcalls.com/" target="_blank">EmmaJane</a></span><br/><span class="wlist"><a href="http://www.amazon.com/wishlist/2Y3GT6EEWXW20" target="_blank">Wishlist</a></span></td>
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
<td valign="top" align="right"> </td>
</tr>
</table>
如果它很重要,這是PHP
$xml = new DOMDocument("1.0", "UTF-8");
$xml->formatOutput = true;
$reqmonth = dateObject($y, $m);
$table = monthTable($db,$xml,$reqmonth);
$xml->appendChild($table);
header('Content-Type: application/xml');
//avoid caching
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in past
print($xml->saveXML());
exit;
monthTable()是使用相同的功能以原始服務的形式在網頁中生成表格。
你能提供一個newTable看起來像什麼的例子嗎?它是一個標準的HTML表嗎? –