Я работаю на веб-сайте, который предоставляет таблицы, мой источник для таблицы из API, который предоставляет таблицу в форме JSON, и вы даете мне один пользовательский ключ для выполнения запроса.
план делает запрос ajax на моей первой странице A , которая отправляет параметр на другую php-страницу B , которая делает запрос curl в api и получает результат из этого запроса и установите его на первой странице A
проблема в сортировке, я могу отсортировать таблицу, нажав на заголовок, что я и нашел в w3shcool, но я хочу, чтобы таблица уже сортировалась со страницы B
это код на странице A index.php
<html>
<body>
<select id="tablslist" onchange="myfunction()">
<option value="0" selected="selected">select table</option>
<option value="1">table1</option>
<option value="2">table2</option>
<option value="3">table3</option>
</select>
<p id=put_mytable_here></p>
<script>
function myfunction(){
var select_tabls = document.getElementById("tablslist")
var user_select = select_tabls.options[select_tabls.selectedIndex].value;
if (user_select === "0"){
document.getElementById("put_mytable_here").innerHTML = "Please Select A Table";
}
else{
var xmlhttp
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("put_mytable_here").innerHTML= this.responseText;
}
}
xmlhttp.open("GET", "gettable.php?para="+user_select, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(null);
}
}
</script>
</body>
</html>
на странице B gettable.php код:
<?php
$para = $_REQUEST["para"];
$get = curl_init();
curl_setopt($get, CURLOPT_URL, "https://apiserver.com/api/?
request=get_table&table_num=$para&APIkey=***************");
curl_setopt($get, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($get, CURLOPT_HEADER, 0);
$table = curl_exec($get);
curl_close($get);
$tablejson = json_decode($table);
echo "<table id=myTable border='1'><th>#</th><th>Name</th>";
foreach ($data as $tablejson) {
echo "<tr>";
echo "<td>$row->data_cell_1</td>";
echo "<td>$row->data_cell_2</td>";
echo "<td>$row->data_cell_3</td>";
echo "</tr>";
}
echo "</table>";
?>
Я хочу, чтобы таблица, запрошенная из gettable.php, уже была отсортирована по #
, но я
не могу найти способ.
это код, который я нахожу в w3school
function sortTable() {
var table, rows, switching, i, x, y, shouldSwitch;
table = document.getElementById("myTable");
switching = true;
/*Make a loop that will continue until
no switching has been done:*/
while (switching) {
//start by saying: no switching is done:
switching = false;
rows = table.rows;
/*Loop through all table rows (except the
first, which contains table headers):*/
for (i = 1; i < (rows.length - 1); i++) {
//start by saying there should be no switching:
shouldSwitch = false;
/*Get the two elements you want to compare,
one from current row and one from the next:*/
x = rows[i].getElementsByTagName("TD")[0];
y = rows[i + 1].getElementsByTagName("TD")[0];
//check if the two rows should switch place:
if (Number(x.innerHTML) > Number(y.innerHTML)) {
//if so, mark as a switch and break the loop:
shouldSwitch = true;
break;
}
}
if (shouldSwitch) {
/*If a switch has been marked, make the switch
and mark that a switch has been done:*/
rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
switching = true;
}
}
}
после добавления <th onclick=sortTable()>#</th>
на gettable.php,
если есть способ заставить эту функцию воздействовать на загрузку таблицы, не дожидаясь нажатия на #
спасибо