将回应的HTML代码(PHP)附加到Javascript

时间:2014-06-07 03:59:24

标签: javascript php html google-chrome printing

我们有一个用于计费的网络应用程序,它从浏览器提供打印。 如果我们从浏览器向dotmatrix打印机提供打印,则会出现速度问题(它非常慢)。 因此,我们计划将原始文本发送到打印机,而无需介入浏览器打印视图。

为此,我开始了解jZebra插件。它使用javascript通过java调用print。 通过jzebra教程,我可以附加一些HTML,我不能打印一些文本,工作正常。如下所示

<script>
        function print() {
        qz.appendHTML('<html><table style="font-size:10pt; font-face:\'Courier New\';"><tr>' + 
                        '<td colspan="3">Company Name</td>' + 
                        '</tr><tr>' +
                        '<td>TIN: number</td>' + 
                        '<td>ADDRESS<br/>SILK SHOWROOM A/C, PADIYUR</td>' + 
                        '<td>STD: 0000000000/td>' + 
                        '</tr></table></html>');
         // Send characters/raw commands to printer
         qz.printHTML();
    }
</script>

问题:

虽然在按钮点击事件中通过PHP回复某些类似HTML产品的计费购买详细信息和总金额。

如何将这些HTML附加到上述功能?

这里有一些代码示例 通过ajax调用此PHP:retail_sales_nontextile_add.php

  try{
        //SELECTING DATA FRO VIEW FROM VI TEMP
        $stmt = $pdo->prepare("SELECT * FROM nontextile_purchase_retailsales_wholesales WHERE bill_number = '$bill_no' ORDER BY id ASC"); $stmt->execute();
        $results            =   $stmt->fetchAll();
     }
     catch(Exception $e){
             print_r($e->getMessage());
             exit;
         }

    foreach($results as $result){
            echo "<tr style='margin-top:-37px;' class='active'><td class='center'></td>";
            echo "<td class='left'>".$result['variety']."</td>";
            echo "<td class='right'>".$result['price']."</td>";
            echo "<td class='center'>".$result['quantity']."</td>";
            echo "<td class='right total'> ".$result['total']."</td>";
            echo "<!--<td class='hidden-print center'><a id='retailsale_nontextile_edit' category ='".$result['category']."' variety='".$result['variety']."' price='".$result['price']."' commision_percent='".$result['commision_percent']."' bill_no='".$result['bill_number']."'>Edit</a></td>-->";
            echo "<td class='hidden-print center'><a id='retailsale_nontextile_delete' id_to_delete='".$result['id']."' bill_no='".$result['bill_number']."'>Delete</a></td></tr>";
                }
                echo "</tbody>
                </table>

使用上面回显的HTML如何将其附加到javascript函数中? AJAX就在这里:

$.post(
             "./php/retailsale/retail_sales_nontextile_add.php",
             { bill_no: bill_no, sale_date: sale_date, category: category, variety: variety, price: price, quantity: quantity, total: total },
             function(data) {
                $('#print_area').html(data);
             }).done(function( data ) {

          });

感谢您的帮助......

1 个答案:

答案 0 :(得分:0)

我可以想到一些可以将数据传递给print的方法。如果这两个函数总是一起运行,那么你可以从打印内部调用帖子或直接传递数据进行打印:

function print() {
        $.post(
             ...
             }).done(function( data ) {
                 qz.appendHTML('...' + data + '...');
          });
}

或相反的方法:

$.post( 
...
                 }).done(function( data ) {
                     print(data)
              });

然后使用打印功能中的数据

function print(data) {
...
}

最后,如果这两个函数是独立的,你可以在函数之外创建一个全局变量,如append。

var append;
$.post( 
...
                 }).done(function( data ) {
                     append = data;
              });
function print() {
   ... + append + ...
}