php输出到带有json的javascript数组
php output to javascript array with json
我有一个项目,它吐出日期项的json_encode字符串。
看起来像这样:
<input type="hidden" class="avail_dates" data-id='["12-9-2014", "7-9-2014"]' />
我尝试过不同的方法,但由于这个项目必须存在,我不能简单地进行ajax调用并返回json_encode内容。
因此,我需要以某种方式将数据id获取到一个javascript数组中,以用于datePicker。
使用这个方法是可行的,但它是硬编码的:
var availableDates = ["9-9-2014","5-9-2014","7-9-2014"];
使用这个没有任何作用:
var availableDatesArray = jQuery('.avail_dates').attr('data-id');
//alerting gives ["9-9-2014","5-9-2014","7-9-2014"]
有没有一种方法可以将字符串转换为有效的数组?
我可以更改数据进入数据id的方式,或者jquery与元素交互的方式,但我不能仅为此添加单独的ajax查询,它必须来自该数据id。
var availableDates = ["9-9-2014","5-9-2014","7-9-2014"];
function dates(date){
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
console.log(dmy+' : '+(jQuery.inArray(dmy, availableDates)));
if (jQuery.inArray(dmy, availableDates) != -1) {
return [true, "","Available"];
}
else {
return [false,"","unAvailable"];
}
return;
}
jQuery('#myDates').datepicker({
changeYear: true,
maxDate: '0',
changeMonth: true,
dateFormat: "mm/dd/yy",
yearRange: '2014:2030',
beforeShowDay: dates,
onSelect: function(dateText) {
}
});
编辑:应该提一下我已经试过json.parse了。它给出了一个"意外数字"错误。
编辑2:我添加了一个函数,我也试图为jQuery datePicker传递数据。
是的,可以使用JSON.parse
。像这样:
var availableDatesArray = jQuery('.avail_dates').attr('data-id');
availableDatesArray = JSON.parse(availableDatesArray);
console.log(availableDatesArray);
或者@charlie 的更好建议
var availableDatesArray = jQuery('.avail_dates').data('id'); // much better
只需使用JSON.parse
。
示例:
var availableDatesArray = JSON.parse(jQuery('.avail_dates').attr('data-id'));
如果您愿意,可以使用jQuery.parseJSON
。
示例:
var availableDatesArray = jQuery.parseJSON(jQuery('.avail_dates').attr('data-id'));
这实际上就是jQuery本身在AJAX响应中解析JSON的方式。
除非我误解了你的问题,否则你只需要使用JSON.parse
:
var availableDatesArray = JSON.parse(jQuery('.avail_dates').attr('data-id'));
jQuery('.avail_dates').attr('data-id')
只会返回一个字符串("data-id"属性的内容。JSON.parse
实际上会从中创建一个JavaScript对象。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)