0

In my project, I need to be able to print off letters which include information about a hiring of a bus. I don't have much experience so what I've done is put the very simple letters onto the webpage and then the idea was to be able to have a print button for each letter and to print which ever I wanted to print off. I think I've done everything but I can't manage to get the print to work, the button just seems to be a meaningless button. My JavaScript coding is poor so I'm not terribly sure how to go about this issue. Any help would be gratefully appreciated. I took a lot of the ideas from How to download/print specific portion of a page using php however I have this specific issue so just looking at that doesn't particularly help me.

<?php
include "connection.php";

$id = 0;
$result = mysql_query("SELECT cost, date, time, pickuplocation, destination,    numberofpeople, endtime, hireid, payment FROM hire WHERE information='letter'");

while ($row = mysql_fetch_array($result)) {
    $id = $id + 1;
    echo "<div id=" . $id . ">";
    echo "The Hurst and Hassocks Community Bus Association <br> 
            Invoice <BR> <BR>
            Thank you for hiring with the Association. <BR>
            The total cost for the hire is: &pound;" . $cost = $row['cost'] . "<BR><BR>
            Your details for the hire: <BR>
            Date: " . $date = $row['date'] . " <BR>
            Time: " . $time = $row['time'] . " <br>
            Pick up location: " . $pickuplocation = $row['pickuplocation'] . " <br>
            Destination: " . $destination = $row['destination'] . " <br>
            Number of people: " . $numberofpeople = $row['numberofpeople'] . " <br>
            End time: " . $endtime = $row['endtime'] . " <br>
            Hire ID: " . $hireid = $row['hireid'] . " <br><br>";

    if (($payment = $row['payment']) == "cheque") {
        echo "In order to pay for your hire and therefore confirm it, please address your     cheque to The Hurst and Hassocks Community Bus Association and include the total cost. Put your cheque in an envelope and send to the following address:  <BR><BR>";
    }

    if (($payment = $row['payment']) == "transfer") {
        echo "In order to pay for your hire and therefore confirm it, you will need to make an online bank transfer to The Hurst and Hassocks Community Bus Association. You will need to enter the Account Number and Sort Code when making the transfer. <BR>
            Account Number:  <BR>
            Sort Code: <BR><br>";
    }

    echo "We will need to receive payment at least 3 days before the date of the hire in order to confirm details with you. If payment is not received by then, the hire will be cancelled. Once payment is received we will send you a confirmation letter. Your driver for the hire will then contact you a few days before the hire to confirm details. <BR><br>
            Thank you for hiring with us, <br><br>

            Simon Strange, <br>
            The Hurst and Hassocks Community Bus Association<br><br><br>--------------------------------------------------------------<br><br>";
    echo "</div>";
    echo "<input type='button' value='Print' onclick='printPage(" . $id . ");'></input>";
    echo $id;

    echo "<br>--------------------------------------------------------------<br><br>";
}
?>

<script>
    function printPage('<?php $id; ?>') {

        var html='<html>';
        html+= document.getElementById(id).innerHTML;
        html+='</html>';
        var printWin = window.open('','','left=0,top=0,width=1,height=1,toolbar=0,scrollbars=0,status =0');
        printWin.document.write(html);
        printWin.document.close();
        printWin.focus();
        printWin.print();
        printWin.close();
    }
</script>
Community
  • 1
  • 1
Lubblobba
  • 65
  • 4
  • 14

1 Answers1

2

You need to change:

function printPage('<?php $id; ?>') {

To:

function printPage(id) {

Try that?

supajason
  • 660
  • 4
  • 13