0

我正在尝试将我的 PHP 回显值设置为 Javascript 变量。然后,JS var 将该值设置为 XML 页面中的元素,以在标签打印机上打印条形码。

到目前为止,javascript 变量从文本区域获取元素并且似乎工作正常,但是当我将变量设置为我的 PHP 回显时,数据格式似乎不正确。我想我可能错误地设置了回声,但已经没有想法了。

目前 textarea 由 echo 填充,因此它可以工作,但我需要不使用 textarea。

使用文本区域

  <?php
        $sqlUpd = "SELECT name, req, printlabel FROM req_requisitions WHERE id = '".$_GET["recordid"]."'";
            $name = $row1['name'];
            $reqNumber = $row1['req'];
            $print = $row1['printlabel'];
        }
?>

segment of my JS-------------------------------------------------------

      function onload()
{
    var textTextArea = document.getElementById("textTextArea");
    var printButton = document.getElementById('printButton');

    // prints the label
    printButton.onclick = function()
    {
        try
        {
            // open label
            var labelXml = loadXMLDoc("barcode.xml");
            var label = dymo.label.framework.openLabelXml(labelXml);

            // set label text
            label.setObjectText("BARCODE", textTextArea.value);

            // select printer to print on
            // for simplicity sake just use the first LabelWriter printer
            var printers = dymo.label.framework.getPrinters();
            if (printers.length == 0)
                throw "No DYMO printers are installed. Install DYMO printers.";

            var printerName = "";
            for (var i = 0; i < printers.length; ++i)
            {
                var printer = printers[i];
                if (printer.printerType == "LabelWriterPrinter")
                {
                    printerName = printer.name;
                    break;
                }
            }

    // prints the label
    printButton.onclick = function()

 My Text Area-------------------------------------------------------

  <div id="textDiv">
    <label for="textTextArea">Label text:</label><br/>
    <textarea name="textTextArea" id="textTextArea"  rows='5' cols='40'><?php echo $reqNumber; ?></textarea>
</div>

这是我想更改的内容

function onload()  {
    var textTextArea = <?php echo $reqNumber;?>;
    var printButton = document.getElementById('printButton');
}
4

4 回答 4

1

它不能将值传递给js,而是传递给textarea?

这个“$requNumber”是一个字符串吗?

如果是,请尝试var textTextArea = '<?php echo $reqNumber;?>';

于 2015-05-19T04:30:29.227 回答
0

基于这个其他问题:https ://stackoverflow.com/a/1035658/2331182

您可以将整数转换为字符串。

尝试这个:

var textTextArea = '<?php echo (string)$reqNumber;?>';

或者

var textTextArea = '<?php echo strval($reqNumber);?>';
于 2015-05-19T04:49:54.053 回答
0

我不确定这是否是最佳实践,但我通常cookies在我想传递数据时php使用js,反之亦然,假设数据不敏感,如密码等。

PHP

setcookie('reqnum',$reqNumber);

JS

var x = readCookie('reqnum');

我不确定这是否是最佳做法,但可以减少很多混乱。确保将其编码为防御性的以处理错误。

于 2015-05-19T04:53:24.650 回答
-1

这个:

function onload()  {
    var textTextArea = '<?php echo $reqNumber;?>';
    var printButton = document.getElementById('printButton');
}

仅当 JS 代码在同一个文件中时才有效,如果这是外部文件,则无效。请注意,正如@wong ian 提到的,您缺少引号。

我认为使用 jQuery 会更好,然后您可以将 PHP 变量作为属性添加到元素,然后通过 jQuery 访问它

<div id="textDiv">
    <label for="textTextArea">Label text:</label><br/>
    <textarea name="textTextArea" id="myId"  rows='5' cols='40' data_var='<?php echo $reqNumber; ?>'><?php echo $reqNumber; ?></textarea>
</div>

并在 JS

textTextArea = $("#myId").attr('data_var);
于 2015-05-19T04:44:46.633 回答