【发布时间】:2014-09-04 02:20:27
【问题描述】:
我正在尝试通过 jQuery Ajax 将 JavaScript 数组发送到新的 PHP 数组:
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);
查询工作正常。我做错了什么?
为了简化问题,我忽略了我通过 system = $(this).attr('data-system'); 将 JS 数组设置为 var 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>");
现在,如果我在 AJAX 语句之前提醒 system,则提醒会显示整数。
$('#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'];
仍然不行,但如果我将 var system 与数组的实际 var(例如,heart)交换,作为 Ajax 数据它可以工作。那么这里有什么问题呢? (抱歉更改此 OP...)。
奇怪,如果我将 var system 更改为如下所示的特定数组,它可以工作,所以使用 jQuery .attr('data-system'); 进行格式化一定有问题
$('#sub_category_box_systems').on('click', '.sub_category_link', function() {
system = heart;
});
【问题讨论】:
标签: javascript php jquery ajax