Как мне сгенерировать HTML-таблицу из PHP с помощью функции Javascript?

#javascript #php #mysql

#javascript #php #mysql

Вопрос:

В PHP-файле я создаю полную таблицу на основе строк, полученных с помощью SQL-запроса, но она возвращает только одну строку, и это также неверно. Если кто-то может дать основную идею, это было бы очень полезно. Мой HTML-код:

 <span class="caption-subject bold uppercase font-green"> Select Month Year:</span>
    <select id="mnth" class="bs-select form-control input-small" data-style="btn-success" onchange="frmmnth=this.value">
                <option value="all"> All </option>
                <option value="01-03">1st Quarter</option>
                <option value="04-06">2nd Quarter</option>
                <option value="07-09">3rd Quarter</option>
                <option value="10-12">4th Quarter</option>
                <option value="01">January</option>
                <option value="02">February</option>
                <option value="03">March</option>
                <option value="04">April</option>
                <option value="05">May</option>
                <option value="06">June</option>
                <option value="07">July</option>
                <option value="08">August</option>
                <option value="09">September</option>
                <option value="10">October</option>
                <option value="11">November</option>
                <option value="12">December</option>
    </select>
    <select id="yearr" class="bs-select form-control input-small" data-style="btn-success" onchange="yr=this.value, datepick();">
            <option value=""> </option>
            <option value="2010">2010</option>
            <option value="2011">2011</option>
            <option value="2012">2012</option>
            <option value="2013">2013</option>
            <option value="2014">2014</option>
            <option value="2015">2015</option>
            <option value="2016">2016</option>
    </select>
    <div id="ttable"> </div>
 

Я вызываю функцию datepick() в javascript.
Вот код Javascript:

 function datepick(){

            if (frmmnth.length > 2 amp;amp; yr.length > 0){

                frmdt = "01"   "-"   frmmnth.substring(0,2)   "-"   yr;
                todt= "30"   "-"   frmmnth.substring(3,5)   "-"   yr;

            } else if (frmmnth.length === 2 amp;amp; yr.length > 0){
                frmdt = "01"   "-"   frmmnth   "-"   yr;
                todt= "30"   "-"   frmmnth   "-"   yr;

            } else if (frmmnth.length === 0 amp;amp; yr.length > 0){
                frmdt = "01"   "-"   "01"   "-"   yr;
                todt= "31"   "-"   "12"   "-"   yr;

            } else if (frmmnth.length === 0 amp;amp; yr.length === 0){
                alert("Year Selection is mandatory.");
                return "Select Year";
            } else {
                alert("Year Selection is mandatory.");
                return "Select Year";
            }


        $.ajax({url: "tw_tablenew.php?tw_level=topamp;tw_frmdt="   frmdt   "amp;tw_todt="   todt , success: function(result){
        $("#ttable").html(result);
        }});
        }
 

Вот мой PHP-код:

 <?php
$tw_level = $_GET['tw_level'];
$tw_frmdt = $_GET['tw_frmdt'];
$tw_todt = $_GET['tw_todt'];

if($tw_level =='top'){

$sqlex = "SELECT 
b.cr,
SUM(g.Population) pop,
round(SUM(g.Population) * 0.45) gog,
round(SUM(g.Population) * 0.33 / 12) exgog,
round(SUM(g.Population) * 0.12) exmom
FROM
gtable g
    INNER JOIN
btable b ON b.bcode = g.gcode
WHERE g.gcode IN (SELECT gid FROM totable tw where dt between '" . $tw_frmdt . "' and '" . $tw_todt . "') 
GROUP BY b.cr ORDER BY b.cr ASC";

$sqlidn = "SELECT 
b.cr,
SUM(t.Population) tpop,
round(SUM(t.Population) * 0.45) tgog,
round(SUM(t.Population) * 0.33 / 12) idngog,
round(SUM(t.Population) * 0.12) idnmom
FROM
ttable t
    INNER JOIN
btable b ON b.bcode = t.tcode
WHERE t.tcode IN (SELECT gid FROM totable tw where dt between '" . $tw_frmdt . "' and '" . $tw_todt . "') 
GROUP BY b.cr ORDER BY b.cr ASC";

$resultex = mysqli_query($con,$sqlex);
$resultidn = mysqli_query($con,$sqlidn);


echo "<table> 
<thead style='background: lightblue;'>
<tr>            

<th width='10%'> Population </th>
<th> Govn Population        </th>
<th> Expected G Population  </th>
<th> Expected Mother        </th>
<th> Identified Govn Population</th>
<th> Identified T Population</th>
<th> Identified Mother</th> 
</tr>
</thead> <tbody>";
while($rowidn = mysqli_fetch_array($resultidn) and $rowex = mysqli_fetch_array($resultex)){
$posts [] = array('pop'=> $rowex[1], 'gog'=> $rowex[2], 'tgog'=> $rowidn[2], 'exgog'=> $rowex[3], 'idngog'=> $rowidn[3], 'exp_mother'=> $rowex[4], 'idn_mother'=> $rowidn[4]);

$max = sizeof($posts);

for ($i=0; $i<$max; $i  )
{ 
echo "<tr>";    
echo "<td>" . $posts[$i]['pop'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['gog'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['tgog'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['exgog'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['idngog'] . "</td>";
echo "<td class='numeric'>" . $posts[$i]['exp_mother'] . "</td>";               
echo "<td class='numeric'>" . $posts[$i]['idn_mother'] . "</td>";
echo "</tr>";
}
echo "</tbody> </table>";
}
?>
 

Любая помощь будет высоко оценена. Спасибо

Комментарии:

1. Предоставьте некоторый код, что вы пробовали

2. можете ли вы поделиться кодом php

3. Я добавил свой код. Спасибо

4. получаете ли вы какой-либо результат или нет

5. ДА. В тот момент, когда я исправил свою дату, приходят результаты!

Ответ №1:

Пожалуйста, предоставьте некоторый код, который вы пробовали, чтобы мы могли решить ваш запрос
, используя приведенный ниже метод для создания таблицы.

 function createTable()
{
var num_ports = document.getElementById('field1').value;
var num_super = document.getElementById('field2').value;
var num_rows = document.getElementById('field3').value;
var num_cols = document.getElementById('field4').value;
var tbody = '';
var colStart = num_cols / num_super;
for( var i=0; i<num_super; i  ){
    var theader = '<div><table border="1">n';
        for($u=1; $u<=num_rows; $u  ){
          tbody  = '<tr>';
            for( var j=0; j<colStart; j  )
            {
            tbody  = '<td>';
            tbody  = 'Cell '   i   ','   j;
            tbody  = '</td>'
            }
    tbody  = '</tr>n';
}
var tfooter = '</table></div>';
document.getElementById('wrapper').innerHTML = theader   tbody   tfooter;
  }
}
 

Комментарии:

1. Спасибо за вашу помощь. Но я хочу получить данные из PHP. Пожалуйста, проверьте мой код.

Ответ №2:

Я нашел решение. На самом деле я принимал даты в формате дд-мм-гггг, тогда как я должен был принять его как гггг-мм-дд. Я исправил часть даты в коде Javascript:

 lastday = new Date(yr, monthh, 0);

frmdt = yr   "-"   frmmnth.substring(0,2)   "-01";
todt= yr   "-"   monthh   "-"   lastday.getDate();
 

Спасибо всем за ответ.