使用json将php输出到javascript数组
我有一个项目,它可以输出日期项的json_编码字符串 看起来像这样:使用json将php输出到javascript数组,javascript,php,jquery,arrays,json,Javascript,Php,Jquery,Arrays,Json,我有一个项目,它可以输出日期项的json_编码字符串 看起来像这样: <input type="hidden" class="avail_dates" data-id='["12-9-2014", "7-9-2014"]' /> 使用此选项没有任何作用: var availableDatesArray = jQuery('.avail_dates').attr('data-id'); //alerting gives ["9-9-2014","5-9-2014","7-9-201
<input type="hidden" class="avail_dates" data-id='["12-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 = jQuery('.avail_dates').attr('data-id');
availableDatesArray = JSON.parse(availableDatesArray);
console.log(availableDatesArray);
或者更好的建议是@charlie
var availableDatesArray = jQuery('.avail_dates').data('id'); // much better
就用吧
示例:
var availableDatesArray = JSON.parse(jQuery('.avail_dates').attr('data-id'));
var availableDatesArray = jQuery.parseJSON(jQuery('.avail_dates').attr('data-id'));
如果您愿意,您可以使用
示例:
var availableDatesArray = JSON.parse(jQuery('.avail_dates').attr('data-id'));
var availableDatesArray = jQuery.parseJSON(jQuery('.avail_dates').attr('data-id'));
这实际上就是jQuery本身在AJAX响应中解析JSON的方式。请使用
示例:
var availableDatesArray = JSON.parse(jQuery('.avail_dates').attr('data-id'));
var availableDatesArray = jQuery.parseJSON(jQuery('.avail_dates').attr('data-id'));
如果您愿意,您可以使用
示例:
var availableDatesArray = JSON.parse(jQuery('.avail_dates').attr('data-id'));
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对象。除非我误解了您的问题,否则您只需要使用JSON.parse
:
var availableDatesArray = JSON.parse(jQuery('.avail_dates').attr('data-id'));
jQuery('.avail\u dates').attr('data-id')
将返回一个字符串(“data-id”属性的内容。JSON.parse
将实际从中创建一个JavaScript对象。如果使用jQuery.data(),则无需使用JSON.parse()
)
如果它是有效的JSON,就会将其读取为数组,并进行内部解析。我应该提到我已经尝试过JSON.parse。它给出了一个“意外数字”错误。格式为“9-9-2014,5-9-2014,7-9-2014”,显然我需要这个函数的括号和双引号work@David该数据的来源是什么?PHP是否回应了这一点?正如您在当前帖子中提出的问题,它工作正常。@David您的示例中有[]
。它们是否不存在或您希望删除的内容?无需使用JSON.parse()
,如果使用jQuery.data()
将读取它作为数组,如果它是有效的JSON,并对其进行内部解析。应该提到我已经尝试过JSON.parse。它给出了一个“意外数字”错误。错误不起作用。格式为“9-9-2014,5-9-2014,7-9-2014”,显然我需要这个函数的括号和双引号work@David这些数据的来源是什么?PHP是否与之相呼应?正如您在当前帖子中提出的问题,它工作正常。@David You have[]
在您的示例中。它们是否不存在或您希望删除的内容?类似于:我无法重现您的“意外数字”使用JSON.parse
时出错。您能提供一个JSFIDLE吗?@David,JSON.parse在这里可以使用@David显示的html,很可能您没有告诉我们一些缺失的部分,就目前而言,使用您的示例,使用JSON.parse和.data会很好地工作。请参见编辑,我添加了用于将其传递给的函数。当很难使用c时oded它工作正常,动态上一点也不。json.parse给出了一个类似的错误:我无法重现您的“意外数字”使用JSON.parse
时出错。您能提供一个JSFIDLE吗?@David,JSON.parse在这里可以使用@David显示的html,很可能您没有告诉我们一些缺失的部分,就目前而言,使用您的示例,使用JSON.parse和.data会很好地工作。请参见编辑,我添加了用于将其传递给的函数。当很难使用c时oded它工作正常,动态上一点也没有。json.parse给出了一个错误