我正在编写一个页面,该页面将打印成员的徽章标签。这是一个DYMO标签制作者,我正在使用他们的JavaScript标签框架。将jquery.get()设置为不起作用的变量
所有成员都与复选框一起列出,数据将被编码为值中的徽章。用户将检查他们想要打印徽章的成员,然后单击打印。
该脚本将抓取选中的复选框,并将该值通过get请求传递给单独的php文件,该文件将返回编码的数据,并且它会这样做。
要返回的数据是周期分隔的,我需要分割并将每个部分放在一个单独的行上。问题是我似乎无法从get的范围中获取数据。
脚本的相关部分:
printButton.onclick = function() {
try {
printButton.disabled = true;
settings.currentPrinterName = printersComboBox.value;
var printer = printers[settings.currentPrinterName];
if (!printer)
throw new Error("Select printer");
var label = null;
if (printer.printerType == "LabelWriterPrinter") {
label = addressLabel;
}
if (!label)
throw new Error("Label is not loaded. Wait until is loaded or reload the page");
var labelSet = new dymo.label.framework.LabelSetBuilder();
var barcode
$("#memchk :checked").each(function(){
var value = $(this).val();
var barcode;
var record = labelSet.addRecord();
$.get("http://ranch/sunrise/wolf/plugins/member_directory/views/barcode.php",{encString: value}, function(data){
//alert(data.split("."));
barcode = data.split(".");
});
alert(barcode[0]);
record.setText("TEXT", barcode[0]);
record.setText("TEXT_1", barcode[1]);
record.setText("TEXT_2", barcode[2]);
record.setText("TEXT_3", barcode[3]);
record.setText("TEXT_4", barcode[4]);
record.setText("TEXT_5", barcode[5]);
record.setText("TEXT_6", barcode[6]);
record.setText("TEXT_7", barcode[7]);
record.setText("TEXT_8", barcode[8]);
var memName = value.split("^");
record.setText("TEXT_9", memName[0]);
});
//label.print(printer.name, null, labelSet.toString());
saveSettings();
} catch(e) {
printButton.disabled = false;
alert(e);
}
printButton.enabled = true;
}
我试过设置了进去每行文字,但它没有考虑。 get中的警报显示预期的数据,但如果我尝试运行它,则表示条形码未定义。如果我注释掉get并将标签的文本行设置为静态字符串,则它可以正常工作。
为什么我不能获取数据?
将“异步”设置为false,因此jQuery将返回当前的XmlHttpRequest实例 – metaforce 2011-05-19 14:30:02
B-E-A-utiful,谢谢。 – Ryan 2011-05-19 14:46:15
这比解决方案更像是创可贴。关闭ajax上的异步排除了ajax的用途......这可能会导致应用程序性能下降,因为它会锁定,直到请求实例返回。 – 2011-05-19 15:09:07