Witam
Za pomocą poniższego kodu chciałem zapisać do pliku xls wybrane pozycje z wyniku zapytania do bazy (poprzez checkboxy), niestety po zainicjowaniu akcji nie kreuje się xls ...
widzę tylko w 'developer tools' chrome ze dane przez 'post' są przekazywane do porządanej podstrony (export.php) ale nic pozatym się nie dzieje.
Prosze o jakieś wskazówki gdzie może być błąd.
ponizej kod:
baza.php:
<!DOCTYPE html> <http://december.com/html/4/element/html.html lang="pl"> <http://december.com/html/4/element/head.html> ... <http://december.com/html/4/element/script.html type="text/javascript"> $(function(){ $("#myTable").tablesorter(); }); </http://december.com/html/4/element/script.html> <http://december.com/html/4/element/script.html type="text/javascript"> $(function(){ $("#myTable").tablesorter({ sortList: [[0,0], [1,0]] }); }); </http://december.com/html/4/element/script.html> </http://december.com/html/4/element/head.html> <http://december.com/html/4/element/body.html style="margin: 0; padding: 0"> <http://december.com/html/4/element/div.html class="wrapper"> <http://december.com/html/4/element/div.html class="baza"> <http://december.com/html/4/element/div.html id="myDiv"><http://december.com/html/4/element/h2.html><http://december.com/html/4/element/a.html href="baza_site.php" style="text-decoration: none;"># Baza Site</http://december.com/html/4/element/a.html></http://december.com/html/4/element/h2.html></http://december.com/html/4/element/div.html> <http://december.com/html/4/element/button.html class="btn btn-danger" id="export">export xls</http://december.com/html/4/element/button.html> <http://december.com/html/4/element/h6.html><http://december.com/html/4/element/i.html>ostatnia aktualizacja bazy - 19.06.2018</http://december.com/html/4/element/i.html></http://december.com/html/4/element/h6.html> </http://december.com/html/4/element/div.html> <http://december.com/html/4/element/div.html class="search"> <http://december.com/html/4/element/form.html action="baza_site.php" method="POST"> <http://december.com/html/4/element/div.html class="input-group"> <http://december.com/html/4/element/input.html type="text" class="form-control" placeholder="Search" name="search"> <http://december.com/html/4/element/div.html class="input-group-btn"> <http://december.com/html/4/element/button.html class="btn btn-default" type="submit" name="submit" > <http://december.com/html/4/element/i.html class="glyphicon glyphicon-search"></http://december.com/html/4/element/i.html> </http://december.com/html/4/element/button.html> </http://december.com/html/4/element/div.html> </http://december.com/html/4/element/div.html> </http://december.com/html/4/element/form.html> </http://december.com/html/4/element/div.html> <http://december.com/html/4/element/div.html class="tabela"> // Include config file require_once 'config.php'; if (isset($_POST["submit"])) { $search = mysqli_real_escape_string($mysqli, trim($_POST['search'])); mysqli_set_charset( $mysqli, 'utf8'); $sql = "SELECT * FROM baza_site WHERE site LIKE '%$search%' OR city LIKE '%$search%' OR address LIKE '%$search%' OR accessDetails LIKE '%$search%' OR ServiceArea LIKE '%$search%' OR locationType LIKE '%$search%'"; if($result = $mysqli->query($sql)){ if($result->num_rows > 0){ $ilosc = mysqli_num_rows($result); echo "<http://december.com/html/4/element/b.html>ilość rekordów : " .$ilosc."</http://december.com/html/4/element/b.html>"; echo "<http://december.com/html/4/element/table.html id='myTable' class='tablesorter-blackice'>"; echo "<http://december.com/html/4/element/thead.html>"; echo "<http://december.com/html/4/element/tr.html>"; echo "<http://december.com/html/4/element/th.html style='text-align:center;' class='filter-false'><http://december.com/html/4/element/input.html type='checkbox' id='checkall'/></http://december.com/html/4/element/th.html>"; echo "<http://december.com/html/4/element/th.html>site</http://december.com/html/4/element/th.html>"; echo "<http://december.com/html/4/element/th.html>location type</http://december.com/html/4/element/th.html>"; echo "<http://december.com/html/4/element/th.html>city</http://december.com/html/4/element/th.html>"; echo "<http://december.com/html/4/element/th.html>address</http://december.com/html/4/element/th.html>"; echo "<http://december.com/html/4/element/th.html>access details</http://december.com/html/4/element/th.html>"; echo "<http://december.com/html/4/element/th.html>service area</http://december.com/html/4/element/th.html>"; echo "</http://december.com/html/4/element/tr.html>"; echo "</http://december.com/html/4/element/thead.html>"; echo "<http://december.com/html/4/element/tbody.html>"; while($row = $result->fetch_array()){ echo "<http://december.com/html/4/element/tr.html>"; echo "<http://december.com/html/4/element/td.html class='text-center'>"."<http://december.com/html/4/element/input.html type='checkbox' name='checkboxlist' class='checkitem' value=". $row['id']."/> </http://december.com/html/4/element/td.html>"; echo "<http://december.com/html/4/element/td.html>" . $row['site']. "</http://december.com/html/4/element/td.html>"; echo "<http://december.com/html/4/element/td.html>" . $row['locationType']. "</http://december.com/html/4/element/td.html>"; echo "<http://december.com/html/4/element/td.html>" . $row['city'] . "</http://december.com/html/4/element/td.html>"; echo "<http://december.com/html/4/element/td.html>" . $row['address'] . "</http://december.com/html/4/element/td.html>"; echo "<http://december.com/html/4/element/td.html>" . $row['accessDetails'] . "</http://december.com/html/4/element/td.html>"; echo "<http://december.com/html/4/element/td.html>" . $row['ServiceArea'] . "</http://december.com/html/4/element/td.html>"; echo "</http://december.com/html/4/element/tr.html>"; } echo "</http://december.com/html/4/element/tbody.html>"; echo "</http://december.com/html/4/element/table.html>"; // Free result set $result->free(); } else{ echo "<http://december.com/html/4/element/p.html class='lead'><http://december.com/html/4/element/em.html>Brak informacji w bazie.</http://december.com/html/4/element/em.html></http://december.com/html/4/element/p.html>"; } } else{ echo "ERROR: Could not able to execute $sql. " . $mysqli->error; } } // Close connection $mysqli->close(); ?> </http://december.com/html/4/element/div.html> </http://december.com/html/4/element/div.html> <http://december.com/html/4/element/script.html type="text/javascript"> $("#myTable").tablesorter({ headers: { 0: { sorter: false, parser: false } } }); <http://december.com/html/4/element/script.html type="text/javascript"> $('#checkall').change(function(){ $('.checkitem').prop("checked", $(this).prop("checked")) }) $('#export').click(function(){ var id = $('.checkitem:checked').map(function(){ return $(this).val() }).get().join(' ') $.post('export.php?p=xls', {id : id}) }); </http://december.com/html/4/element/script.html> </http://december.com/html/4/element/body.html> </http://december.com/html/4/element/html.html>
<?php require_once 'config.php'; $id=''; $output = ''; $page = http://www.php.net/isset($_GET['p'])? $_GET['p'] : ''; if($page == 'xls'){ $myid = $_POST['id']; $id = http://www.php.net/str_replace('/', '', $myid); $sql = "SELECT * FROM baza_site WHERE id IN($id)"; http://www.php.net/echo $sql; if($result = $mysqli->query($sql)){ if($result->num_rows > 0) { $output .= ' <table border="1"> <tr> <th>id</th> <th>site</th> <th>location type</th> <th>city</th> <th>address</th> <th>access details</th> <th>service area</th> </tr> '; while($row = mysqli_fetch_array($result)) { $output .= ' <tr> <td>'.$row["id"].'</td> <td>'.$row["site"].'</td> <td>'.$row["locationType"].'</td> <td>'.$row["city"].'</td> <td>'.$row["address"].'</td> <td>'.$row["accessDetails"].'</td> <td>'.$row["ServiceArea"].'</td> </tr> '; } $output .= '</table>'; http://www.php.net/header("Content-Type: application/vnd.ms-excel"); http://www.php.net/header("Content-Disposition: attachment; filename=".'xxx'.http://www.php.net/date("Y-m-d_H_i_s").".xls"); http://www.php.net/header("Pragma: no-cache"); http://www.php.net/header("Expires: 0"); http://www.php.net/echo $output; } }} $mysqli->close(); ?>
Wszystko zapewne działa tak jak powinno. Ale Ajax nie słuzy do pobierania plików generalnie...
https://nehalist.io/downloading-files-from-post-requests/
Zatem jak najprościej przekazać wartośc 'id'(z zaznaczonych checkboxow) do podstrony która wykona zapytanie do bazy i wykreuje mi xls'a ?
Normalnie, wyslij formularz do tej podstrony
Widać że nie przeczytałeś tego co podesłałem bo tam masz gotowe rozwiązanie tak na prawdę.
jak widać dużo jeszcze się muszę nauczyć
ale rozwiązania problemu tam nie widze ;/
dzięki za pomoc
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)