У меня есть отчет в формате PDF на основе дня, выбранного из выпадающего меню. Я не уверен, как это сделать - PullRequest
0 голосов
/ 04 марта 2020

Итак, я выбираю день из выпадающего модального окна в моем bootstrap модале, когда я нажимаю кнопку «Генерировать pdf», «отображается подтвержденное сообщение успешно», но pdf не генерируется. Когда я запускаю файл прямо в браузере с помощью «localhost / test4 / check_booking_day.pdf», файл PDF отображается правильно. Я не знаю, в чем проблема. Может кто-нибудь, пожалуйста, помогите мне. Мой модальный код:

<div class="modal fade" id="modal_check_booking_day" tabindex="-1" role="dialog" aria-labelledby="modal_check_booking_day_label" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <form method="post" id = "booking_day_form"></form>
                <div class="modal-header">
                    <h5 class="modal-title" id="modal_check_booking_day_label">Check Booking day</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <div class = "col-md-6">
                        <div class="form-group">
                            <!-- <label>Select Day</label> -->
                            <select id="Day" name = "Day" class="custom-select">
                                <option value="" disabled selected style="display: none;">Select Day</option>
                                <?php echo $GroupDay; ?>
                            </select>
                        </div>
                        <div id="response"></div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                    <button type="submit" name = "booking_day_pdf" id="booking_day_pdf" class="btn btn-primary">Generate PDF</button>
                </div>
            </div>
        </form>
    </div>
</div>

Мой javascript:

$(document).on('click', '#check_booking_day', function(){
        $('#booking_day_pdf').click(function(){
            $.ajax({
                method : "post",
                url : "check_booking_day.php",
                data : {},
                success : function(data) {
                    // $('#modal_check_booking_day').modal('hide');
                    $("#response").html("Confirmed Sucessfully!");
                }
            });
        });
    });

Мой check_booking_day. php для создания PDF-файла:

<?php 
    function fetch_data()  
    {  
        $output = '';
        $connection = new PDO("mysql:host=localhost;dbname=baps", "root", "");
        $sql = "SELECT * FROM tab_visitorgroups ORDER BY GroupName";
        $statement = $connection->prepare($sql);
        $statement->execute();
        $result = $statement->fetchAll();  
        foreach($result as $row)
        {       
        $output .= '<tr>  
                        <td>'.$row["DateVisit"].'</td>  
                        <td>'.$row["TimeVisit"].'</td>  
                        <td>'.$row["GroupName"].'</td>  
                        <td>'.$row["GroupName"].'</td>  
                        <td>'.$row["GroupType"].'</td>  
                        <td>'.$row["TotalVisitors"].'</td>
                        <td>'.$row["Male"].'</td>
                        <td>'.$row["Female"].'</td>
                        <td>'.$row["VisitToMuseum"].'</td>
                        <td>'.$row["GroupInfo"].'</td>
                        <td>'.$row["GuideRequired"].'</td>
                        <td>'.$row["GuideName"].'</td>
                        <td>'.$row["Status"].'</td>
                        <td>'.$row["DataInputDate"].'</td>
                    </tr>  
                ';  
        }  
        return $output;  
    } 
    if(isset($_POST["booking_day_pdf"]))  
    {  
        require_once('tcpdf/tcpdf.php');  
        $obj_pdf = new TCPDF('P', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);  
        $obj_pdf->SetCreator(PDF_CREATOR);  
        $obj_pdf->SetTitle("Group Visits");  
        $obj_pdf->SetHeaderData('', '', PDF_HEADER_TITLE, PDF_HEADER_STRING);  
        $obj_pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));  
        $obj_pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));  
        $obj_pdf->SetDefaultMonospacedFont('helvetica');  
        $obj_pdf->SetFooterMargin(PDF_MARGIN_FOOTER);  
        $obj_pdf->SetMargins(PDF_MARGIN_LEFT, '5', PDF_MARGIN_RIGHT);  
        $obj_pdf->setPrintHeader(false);  
        $obj_pdf->setPrintFooter(false);  
        $obj_pdf->SetAutoPageBreak(TRUE, 10);  
        $obj_pdf->SetFont('helvetica', '', 8);  
        $obj_pdf->AddPage();  
        $content = '';  
        $content .= '  
        <h3 align="center">Group Visits</h3><br /><br />  
        <table border="1" cellspacing="0" cellpadding="5">  
            <tr>  
                    <th>Date of Visit</th>  
                    <th>Time</th>  
                    <th>Group Name</th>  
                    <th>Contact Name</th>  
                    <th>Group Type</th> 
                    <th>Total Visitors</th> 
                    <th>Male</th> 
                    <th>Female</th> 
                    <th>Museum?</th>  
                    <th>Other Info</th> 
                    <th>Guide Needed</th> 
                    <th>Guide Name</th> 
                    <th>Status of Visit</th> 
                    <th>Data Input Date</th> 
            </tr>  
        ';  
        $content .= fetch_data();  
        $content .= '</table>';  
        $obj_pdf->writeHTML($content);  
        ob_end_clean();
        $obj_pdf->Output('check-booking-day.pdf', 'I');    
    }  
?>

Кнопка в мой индекс. php

<input class="dropdown-item" type="button" data-toggle="modal" data-target="#modal_check_booking_day" name="check_booking_day" id="check_booking_day" value="Check Booking Day" />
...