gpt4 book ai didi

javascript - 如何使 HTML 表格使用 PHP 数组

转载 作者:行者123 更新时间:2023-12-03 02:39:12 24 4
gpt4 key购买 nike

我想让 HTML 表格使用 PHP 数组。

这是 PHP 端代码

function get_location_list()
{
global $connect;

$query = "select location
, SUBSTRING_INDEX(SUBSTRING_INDEX(location,'-',1),'-',-1) loc_a
, SUBSTRING_INDEX(SUBSTRING_INDEX(location,'-',2),'-',-1) loc_b
, SUBSTRING_INDEX(SUBSTRING_INDEX(location,'-',3),'-',-1) loc_c
from stock_location
where location> ''
order by loc_a, loc_b * 1, loc_c * 1 limit 100";
$result = mysql_query($query, $connect);
$arr_result = array();

while( $data = mysql_fetch_array( $result ) )
{
$arr_result[$data[loc_a]][] = $data[location];
}

echo json_encode( $arr_result );
}

此代码将数组发送到 HTML 端。数组值与此相同

"A1":["A1-1","A1-1-1","A1-1-2","A1-1-3","A1-1-4","A1-2-1","A1-2","A1-2-
2","A1-2-3","A1-2-4","A1-3-1","A1-3-2","A1-3","A1-3-3","A1-3-4","A1-4-
1","A1-4-2","A1-4-3","A1-4-4","A1-4","A1-5-1","A1-5-2","A1-5-3","A1-5-
4","A1-5"],
"A2":["A2-1","A2-1-1","A2-1-2","A2-1-3","A2-1-4","A2-2-1","A2-
2","A2-2-2","A2-2-3","A2-2-4","A2-3-1","A2-3-2","A2-3-3","A2-3","A2-3-
4","A2-4-1","A2-4-2","A2-4-3","A2-4","A2-4-4","A2-5-1","A2-5-2","A2-5-
3","A2-5-4","A2-5"],
"A3":["A3-1","A3-1-1","A3-1-2","A3-1-3","A3-1-4","A3-2-
1","A3-2","A3-2-2","A3-2-3","A3-2-4","A3-3-1","A3-3-2","A3-3-3","A3-3","A3-
3-4","A3-4-1","A3-4-2","A3-4-3","A3-4","A3-4-4","A3-5-1","A3-5-2","A3-5-
3","A3-5-4","A3-5"],
"A4":["A4-1","A4-1-1","A4-1-2","A4-1-3","A4-1-4","A4-2-
1","A4-2","A4-2-2","A4-2-3","A4-2-4","A4-3-1","A4-3-2","A4-3-3","A4-3","A4-
3-4","A4-4-1","A4-4-2","A4-4-3","A4-4","A4-4-4","A4-5-1","A4-5-2","A4-5-
3","A4-5-4","A4-5"]

这是 HTML 端。不同的文件,与 PHP 不是同一个文件

  <table class="table table-bordered">
<thead>
<tr>
<th class="header_center" width=100>location</th>
<th class="header_center" width=100>product</th>
<th class="header_center" width=100>qty</th>
</tr>
</thead>

<tbody id="table_contents">
</tbody>
</table>

这是 javascript。 javascript 代码与 HTML 位于同一文件中

    $.post("function.htm", { 
template : "IU00",
action : "get_location_list",
},

function( response ){

$("#table_contents").empty();

obj = eval( "(" + response + ")" )

for( var i=0; i < obj.length; i++ )
{
str = "<tr>";
str += "<td>" + obj[i].location + "</td>";
str += "<td>" + "</td>";
str += "<td>" + "</td>";
str += "</tr>";

$("#table_contents").append(str);
}


});

我想显示这样的 HTML 表格。

  __________ __________ __________ __________
|location 1|location 2|location 3|location 4|
| A1-1-1 | A2-1-1 | A3-1-1 | A4-1-1 |
| A1-1-2 | A2-1-2 | A3-1-2 | A4-1-2 |
| A1-1-3 | A2-1-3 | A3-1-3 | A4-1-3 |
| A1-1-4 | A2-1-4 | A3-1-4 | A4-1-4 |
| A1-2-1 | A2-2-1 | A3-2-1 | A4-2-1 |
| A1-2-2 | A2-2-2 | A3-2-2 | A4-2-2 |
. . . .
. . . .
| A1-5-5 | A2-5-5 | A3-5-5 | A4-5-5 |
---------------------------------------------

我不确定问题出在 Javascript 还是 HTML 代码上。需要进行哪些更改才能以上面所示的格式显示表格?

最佳答案

// Code goes here
/**
* https://stackoverflow.com/questions/48401981/how-to-make-html-table-use-php-array#
*/
var response ="";
var table_header = $('#table_header');
var table_body = $('#table_body');

function processResponse(resp){
resp = {'A1':['A1-1','A1-2','A1-3'], 'A2':['A2-1','A2-2','A2-3','A2-4']};

// work on the table header
var columns ="";
var columnNames = Object.keys(resp);
var maxRow = 0; // so we know which key has the longest row
for(var col=0; col < columnNames.length; col++){
columns += '<th class="header_center" width=100>'+columnNames[col]+'</th>';

if(maxRow < resp[columnNames[col]].length ){
maxRow = resp[columnNames[col]].length;
}
}
table_header.html(columns);

// lets work on the table row based on the longest row
var rows = [];
for(var i=0; i< maxRow; i++){
var single_row = [];
// loop through the columns
for (var col=0; col < columnNames.length; col++){
var value = resp[columnNames[col]];
single_row.push(value[i]);
}
rows.push(single_row); // row created
}

// now update our table with it
table_body.html("");
for(var row=0; row<rows.length; row++){
var tr = "<tr>";
// now td
for(var col=0; col<rows[row].length; col++){
tr +="<td>"+rows[row][col]+"</td>";
}

tr +="</tr>";

table_body.append(tr);
}

}


$("#process").click (function(e){
processResponse();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table class="table table-bordered">
<thead>
<tr id="table_header">

</tr>
</thead>

<tbody id="table_body">
</tbody>
</table>

<button id="process">Process record</button>

您可以更新响应以遵循从服务器返回的响应。您的服务器可以执行大部分操作。如果您检查是如何生成的,您可以将该过程移至您的服务器,只需执行行到列的双重迭代

关于javascript - 如何使 HTML 表格使用 PHP 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com