如何将JQuery中的数组移动到Perl中

时间:2013-05-06 15:54:26

标签: jquery arrays perl

我正在寻找一种方法将使用JQuery收集的数组中的数值移动到一个新的数组中供Perl选取。这有可能并且有一个首选方法吗?

JQuery Array: addVssID 
Hash array: $self->input->vssID
  • addVssID具有值(1,11,25),用于表示已在HTML表单中检查过的复选框。单击SAVE按钮时会触发此收集/计算。
  • 在程序的其他地方,我们新创建了$ self->输入,以保存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中进行处理。我不知道这是否会发生任何变化,但我们也提供了Template Toolkit。

UPDATE /溶液: 采用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;

}

1 个答案:

答案 0 :(得分:3)

你可以做以下两件事之一:

  1. 正如Barmar指出的那样,将整个数据集(使用jQuery)收集到一个JSON数据结构中。然后将其序列化(编码)为字符串,并将该字符串作为POST参数传递给Perl Web后端代码。在Perl中,使用JSON模块解码它(它将能够从JSON构建一个Perl数据结构,以相同的方式映射它)。

  2. 创建一组输入字段(隐藏或不隐藏,基于您的webapp)。然后在Perl中读取它们,并手工制作数据结构。

    由于您没有提供具体的示例代码,因此很难提供更具体的帮助