【发布时间】:2013-05-18 05:32:34
【问题描述】:
我正在寻找一种方法,将使用 JQuery 收集的数组中的数值移动到一个新数组中以供 Perl 获取。这可能吗?是否有首选方法?
JQuery Array: addVssID
Hash array: $self->input->vssID
- addVssID 的值 (1, 11, 25) 表示已在 HTML 表单中选中的复选框。单击“保存”按钮时会触发此收集/计算。
- 在程序 $self->input 的其他地方新创建了用于保存 Perl 稍后处理并保存到 MySQL 数据库的各种供应商信息。我正在跟踪日志文件中的值,并且在我的 Perl 中使用 DUMPER($self) 时看不到我的预期结果,尽管我可以看到填充了其他值。
- 我基本上是在查看现有的遗留代码,根据自己的需要复制/编辑它,但它似乎不起作用。
这是我的 JSON:老实说,我真的不明白它是如何工作的。
var ShippingInput = $('<input type="hidden" name="Shipping" />');
$ShippingInput.val(JSON.stringify(getShipping()));
$form.append($ShippingInput);
在 Perl 的另一端,我正在等待获取结果:
my $Shipping = [];
eval { $Shipping = JSON::from_json($self->input->{'vendor'}->{'Shipping'});
};
最终我想将数组值移动到 MySQL 表中。另一种选择是将数组推送到 MySQL 表中,然后将其拉出到 Perl 中进行处理。我不知道这是否会改变什么,但我们也有可用的模板工具包。
更新/解决方案: 采用 JSON 路由,我从复选框中获取动态值 (value='Shipping_###'),剥离文本并将数字添加到数组中。我仍然对 JSON/JQUERY 的工作方式感到不安,但这里是 get 函数,它似乎正在工作:
function getShipping() {
// called onSave from submitForm()
var shipping = [];
$('.Shipping').each(function(i, Shipping) {
shipping.push($(Shipping).attr('id').replace('Shipping_', ''));
});
return shipping;
}
【问题讨论】:
-
@Barmar:我是 JQuery 的新手。您能否更具体地说明我正在寻找的关于 JASON 编码的内容?
-
@Vongrats - JSON 不是 JQuery 特定的。它是 JavaScript 的标准数据结构格式。谷歌一下。