我修改了另一位开发人员编写的代码。在这里,他收集值并将它们从数组(dataId
)转换为以逗号分隔的字符串:
$("#retrieve_works_form").on('submit', function(e) {
e.preventDefault();
$('#toggle_search_terms').trigger('click');
var dataId = new Array();
$('li.nw').each(function() {
var thisDataId = $(this).attr('data-id');
dataId.push(thisDataId);
});
$('li.added_gallery_item').each(function() {
var thisDataId = $(this).attr('data-id');
dataId.push(thisDataId);
});
$('#returned_gallery_work_ids').val(dataId.join(','));
$_POST['returned_gallery_work_ids']
因此在dataId
数组中保存以逗号分隔的值字符串。我想修改它,所以它只返回数组,每个元素都在一个顺序索引中。我认为这样做可以解决问题:
$('#returned_gallery_work_ids').val(dataId);
......但它并没有;它返回一个逗号分隔的值字符串,与dataId.join(',')
运算符的参数.val()
时返回的值没有什么不同。
这里确实有两个问题:
dataId
数组? [第二个问题是真正必要的问题,但我想了解这里发生的事情的机制。]
答案 0 :(得分:1)
在输入中存储任何类型的值时,它会以字符串形式存储,因此如果您以后检索它,则需要将其拆分:
var galleryArray = $("#returned_gallery_work_ids").val().split(',');
或者在服务器端的PHP中,你将使用它:
$galleryArray = explode( ",", $_POST['returned_gallery_work_ids'] );
希望这有帮助。