Для начала, есть несколько стилистических проблем с вашим кодом. Во-первых, вы должны отказаться от использования синтаксиса new
с массивами, объектами и т. Д. Вместо этого объявите свой Array
с чем-то вроде var array = [];
. Во-вторых, вы используете встроенный onClick
, чего следует избегать, если вы уже используете jQuery. Вместо этого используйте что-то вроде $('input[name="replace"]').on('click', function() {...});
. Вам также следует рассмотреть возможность использования camelCase
с вашими функциями, а если вам нравятся подчеркивания, используйте их с vars
.
Теперь перейдем к мясу вашего вопроса. Я изменил ваш код следующим образом:
$('input[name="replace"]').on('click', function() {
replaceEquip();
});
function replaceEquip() {
var array = [];
$("input:checkbox[name=equip]:checked").each(function() {
array.push($(this).val());
});
$.facebox(function() {
$.ajax({
type: "POST",
url: "test.php",
data: { name : array },
error: function() {
$.facebox("err");
},
success: function(data) {
$.facebox(data);
}
});
});
}
В вашем PHP-коде вы бы json_decode()
использовали этот массив и работали с ним, как хотите. Я также переместил параметры type
и url
наверх, поскольку ваши функции error
и success
могут быть довольно длинными.
Я хотел бы прочитать Шаблоны JavaScript (по крайней мере, главу Essentials).