我有一个PHP脚本,它生成一个表行字符串并通过AJAX调用将其返回。此字符串包含tbody
代码(<tr>1</tr><tr>2</tr>
)之间的所有内容。
此数据通过AJAX调用传回,以便我可以在我的成功函数中访问它。
PHP:
$outputArray = Array();
$recordCount = 0;
$i = 0;
// Loop over our data
foreach($objData->data as $r){
$outputArray[$i++] = '<tr data-qid="'.$r->identifierQID.'" class="primaryValue ' . searchMarkup($markupData, $r->identifierQID) . '">';
// Loop over our fields
foreach($r as $key => $value){
// Vars
$fieldID = str_replace('_', '', $key);
// Don't include our identifier columns
if(!in_array($fieldID, $ignore)){
$outputArray[$i++] = '<td data-tableexport-display="always" class="small' . ($exportFields ? (in_array($fieldID, $exportFields) ? ' hidden' : '') : '') . '">' . formatFieldData($fieldID, $value) . '</td>';
}
}
// Notes always come last
$outputArray[$i++] = '<td data-tableexport-display="always" class="notesTD allowContext hidden"></td>';
$outputArray[$i++] = '</tr>';
$recordCount++;
}
// Join our rows array and return it
$end = microtime(true);
$timer = number_format($end - $start, 2);
return array(join("",$outputArray), $recordCount, $timer);`
我正在尝试将此数据与名为clusterize
的插件一起使用,该插件用于处理DOM中的大量数据。它要求每一行都是数组中自己的值。
示例:var data = ['<tr>…</tr>', '<tr>…</tr>', …];
我的问题是我的输出是作为包含所有行的连接字符串返回的。
我的问题:
我怎样才能将每个TR
作为一个数组中的值,我可以提供给我的成功函数?最好是在PHP端执行此操作,还是使用javascript将最终字符串分解为数组?
答案 0 :(得分:0)
从服务器返回每一行,以简化并避免无用的工作(即加入然后分割)。这是一个(未经测试的)示例:
$outputArray = Array();
foreach($objData->data as $r){
$row = '<tr data-qid="'.$r->identifierQID.'" class="primaryValue ' . searchMarkup($markupData, $r->identifierQID) . '">';
foreach($r as $key => $value){
$fieldID = str_replace('_', '', $key);
if(!in_array($fieldID, $ignore)){
$row .= '<td data-tableexport-display="always" class="small' . ($exportFields ? (in_array($fieldID, $exportFields) ? ' hidden' : '') : '') . '">' . formatFieldData($fieldID, $value) . '</td>';
}
}
$row .= '<td data-tableexport-display="always" class="notesTD allowContext hidden"></td>';
$row .= '</tr>';
$outputArray[] = $row;
}
$end = microtime(true);
$timer = number_format($end - $start, 2);
return array($outputArray, count($outputArray), $timer);