1

我终于有一个条形码出现在我的表中,它是从查询生成的。但是现在我在从 $row[1] 获取每个结果的代码时遇到问题。我尝试使用 PHP-BARCODE,但创建所有条形码需要太多内存。Jquery 看起来使用更少的内存来创建它们。因此我选择了这种方法。

对此的任何帮助都会很棒

我的脚本主要是 PHP,带有来自 JQUERY 的奇怪飞溅。JQUERY 用于屏幕刷新和条码生成。一旦我越过了这个障碍,很快就会有更多。

<?php
include('inc/database.php');

// MSSQL Query
$sql = "SELECT warehouse, pick_order_number, order_status, pick_order_type, customer_order_number
        FROM pick_order_header
        WHERE warehouse = 'XDGM'
        AND order_status <> 'Complete'
        AND order_status <> 'Closed'
        AND pick_order_type <> 'Backorder'
        AND customer_order_number LIKE '%1 hr%'";

?>

<!DOCTYPE HTML>
<link rel="stylesheet" type="text/css" href="css/master.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="js/jquery-barcode.js"></script>
<script>
setTimeout(function(){
        window.location.reload(1);
    }, 5000);
</script>

<html>
<title>Current Orders</title>
<body>

<table>
    <?php
    // SQLSRV Query
    $results = sqlsrv_query( $conn, $sql );
    if( $results === false) {
        die( print_r( sqlsrv_errors(), true) );
    }
    echo "
            <table border=1>
            <tr>
                <th>Order Number</th>
                <th>Order Status</th>
                <th>Order Type</th>
                <th>Customer Order</th>
                <th>Barcode</th>
            </tr>";
    while ($row = sqlsrv_fetch_array($results))
    {
        $odrnum = $row[1];
        $odrstatus = $row[2];
        $odrtype = $row[3];
        $custorder = $row[4];
        $barcode = $row[1];

        echo "
            <tr>
                <td>$odrnum</td>
                <td>$odrstatus</td>
                <td>$odrtype</td>
                <td>$custorder</td>
                <td>
        <div id="bcTarget_'.$odrnum.'"><input type="button" id="bc" name="bc" value="Click Here" /></div>
    </td>
    <script>
    $("#bc").click(function(){$("#bcTarget_'.$odrnum.'").barcode("'.$row[1].'", "code39",{barWidth:2.5, barHeight:30, showHRI: true, bgColor: "#DEF3CA"});});</script>
</tr>';

    }
    echo "</table>";

    ?>
</table>
</body>
</html>

我在这方面完全是菜鸟,所以如果你确实找到了解决方案,你也可以向我解释一下,以便我学习吗?

谢谢一堆

4

2 回答 2

1

问题是您有多个相同的 id bcTarget,jquery 将选择在 DOM 中找到的第一个。

尝试使选择器的 ID 独一无二:

echo '
    <tr>
        <td>'.$odrnum.'</td>
        <td>'.$odrstatus.'</td>
        <td>'.$odrtype.'</td>
        <td>'.$custorder.'</td>
        <td>
            <div id="bcTarget_'.$odrnum.'"></div>
        </td>
        <script>
        $(function(){$("#bcTarget_'.$odrnum.'").barcode("'.$row[1].'", "code39",{barWidth:2, barHeight:30});});</script>
    </tr>';
于 2013-06-24T00:33:21.013 回答
0

你可以使用这个代码

<div class="bcTarget" rel="4874214545"></div>
//rel= 'barcode digits'

javascript

$(document).ready(function() {
$(".bcTarget").each(function() {
var bcdigits = $(this).attr('rel');
$(this).barcode(bcdigits, "code39",{barWidth:2, barHeight:30});

});
});
于 2013-08-20T10:21:19.560 回答