我正在寻找一种方法将使用 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;
}