我试图将我的PHP echo的值设置为Javascript变量。JS变量然后将该值设置为XML页面中的一个元素,以便在标签打印机上打印条形码。
到目前为止,javascript变量从文本区域获取元素,似乎工作得很好,但是当我将变量设置为PHP echo时,数据格式似乎是不正确的。我想我可能是把echo设置错了,但是我没有办法了。目前textarea是由echo填充的,所以它可以工作,但是我需要不使用textarea。
与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');
}
它不能将值传递给js,但传递给textarea?
这个"$ reqnumber"是一个字符串吗?
如果是,尝试var textTextArea = '<?php echo $reqNumber;?>';
基于另一个问题:https://stackoverflow.com/a/1035658/2331182
可以将整数转换为字符串。
试试这个:
var textTextArea = '<?php echo (string)$reqNumber;?>';
或
var textTextArea = '<?php echo strval($reqNumber);?>';
我不确定这是否是最佳实践,但当我想将数据从php
传递到js
时,我通常使用cookies
,反之亦然,假设数据不敏感,如密码或任何此类。
setcookie('reqnum',$reqNumber);
JS
var x = readCookie('reqnum');
我不确定这是不是最好的做法,但是减少了很多混乱。
this:
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);