Я пытаюсь отправить массив JavaScript на новый PHP массив с помощью JQuery Ajax:Отправить массив JavaScript в PHP массив с помощью JQuery Ajax
var heart = [31,32,33,34,35,36,37,38,39,42,43];
$('#find_btn').click(function(){
$.ajax({
type: "POST",
url: 'scripts/get_specimens_system.php',
data: {
system: heart,
},
success: function(data) {
$('#search_list_container').html(data);
}
});
});
В PHP скрипт я следующее перед запросом MySQL:
$system = array($_POST['system']);
Если я жёстко данные в heart
как:
$system = array(31,32,33,34,35,36,37,38,39,42,43);
запрос работает O K. Что я делаю не так?
В попытке упростить этот вопрос я оставил тот факт, что я устанавливаю массив JS в var system
через system = $(this).attr('data-system');
Если данные система установлена в массивы, как:
$('#sub_category_box_systems').html("<a class='sub_category_link' href='#' data-subcat-type='system' data-system='" + brain + "'>Brain</a><br /><hr><a class='sub_category_link' href='#' data-subcat-type='system' data-system='" + nerves + "'>Nerves</a><br /><hr><a class='sub_category_link' href='#' data-subcat-type='system' data-system='" + cerebellum + "'>Cerebellum</a>");
Теперь, если я предупреждаю system
непосредственно перед заявлением AJAX, предупреждение показывает, что межсегменты в порядке.
$('#sub_category_box_systems').on('click', '.sub_category_link', function() {
system = $(this).attr('data-system');
});
$('#find_btn').click(function(){
alert(system);
$.ajax({
type: "POST",
url: 'scripts/get_specimens_system.php',
data: {
system: system,
},
success: function(data) {
}
});
});
И я обновил PHP файл:
$system = $_POST['system'];
Все еще не идет, хотя, если я поменять вар system
при фактическом варе массива (например, heart
), так как Данные Ajax работают. Так что здесь не так? (извините за изменение этого OP ...).
Странно, если я изменю вар system
на определенный массив, как показано ниже это работает, так что должно быть некоторые проблемы с форматированием с помощью JQuery .attr('data-system');
$('#sub_category_box_systems').on('click', '.sub_category_link', function() {
system = heart;
});
Или, если пытаются отправить многомерный массив, использование $ системы с [0] – nwolybug
Только если он просто хочет, чтобы первый ряд его. – Barmar
В попытке упростить вопрос я опустил факт, что я получаю массив JS через тег данных html и используя system = $ (this) .attr ('data-system'); Должен ли я обновить OP или открыть новый вопрос? – IlludiumPu36