【问题标题】:Appending Echoed HTML code (PHP) to Javascript将 Echoed HTML 代码 (PHP) 附加到 Javascript
【发布时间】:2014-06-07 03:59:23
【问题描述】:

我们有一个用于计费的网络应用程序,它可以从浏览器打印。 如果我们从浏览器打印到点阵打印机,就会出现速度问题(打印速度非常非常慢)。 所以我们计划在不干预浏览器打印视图的情况下将原始文本发送到打印机。

为此我开始了解jZebra 插件。它使用javascript通过java调用打印。 通过 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 ) {

          });

感谢您的帮助....

【问题讨论】:

  • 您可以将 ajax 与各种 JQuery 函数(如 get() 或 post() 之一)一起使用,并将 PHP 响应检索到变量中。 api.jquery.com/jquery.get
  • 我正在使用 $.ajax();和 PHP 响应我在一个名为 data 的变量中(在成功函数上)。然后?我如何附加小代码示例会有帮助
  • 如果它已经在变量中,那么您可以使用 + 追加。例如'&lt;html&gt;' + data + '&lt;/html&gt;'
  • 如果这不是您的要求,请发布完整的 JS 代码,以便我查看更多上下文。
  • 不回显 html 将其存储在变量中并将该变量作为数据发送。

标签: javascript php html google-chrome printing


【解决方案1】:

我能想到一些可以将数据传递给打印的方法。如果这两个函数总是一起运行,那么您可以从 print 内部调用 post 或将数据直接传递给 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 + ...
}

【讨论】:

    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    相关资源
    最近更新 更多