我正在編寫一個頁面,該頁面將打印成員的徽章標籤。這是一個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