gpt4 book ai didi

javascript - 将 jquery.get() 设置为变量不起作用

转载 作者:行者123 更新时间:2023-11-28 11:27:40 25 4
gpt4 key购买 nike

我正在编写一个页面,为成员(member)打印徽章标签。这是一个 DYMO labelmaker,我正在使用他们的 javascript 标签框架。

所有成员都带有复选框,并且值中包含要为徽章编码的数据。用户将选中他们想要为其打印徽章的成员,然后单击“打印”。

该脚本将抓取选中的复选框(它确实这样做了),并通过 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 内的警报显示预期的数据,但如果我尝试按原样运行它,它会显示条形码未定义。如果我注释掉 get 并将标签的文本行设置为静态字符串,它就可以正常工作。

为什么我无法获取数据?

最佳答案

不要使用 get,试试这个:

var barcode =  $.ajax({
url: "http://ranch/sunrise/wolf/plugins/member_directory/views/barcode.php",
type: "GET",
data: {encString: value},
async: false
}).responseText;

您将获得根据您的请求分配的条形码,并且:

        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]);

应该可以;)

关于javascript - 将 jquery.get() 设置为变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6060035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com