json将php变量编码为javascript
我使用php从MySql检索数据,如下=>json将php变量编码为javascript,php,javascript,json,Php,Javascript,Json,我使用php从MySql检索数据,如下=> while ($birthday_row = $birthday_r->fetch_row()){ $birthday_array[] = array( 'title' => $birthday_row[0], 'start' => $birthday_row[1] . "-" . $birthday_row[2] ); } while ($birthday_row = $birthday_r->
while ($birthday_row = $birthday_r->fetch_row()){
$birthday_array[] = array(
'title' => $birthday_row[0],
'start' => $birthday_row[1] . "-" . $birthday_row[2]
);
}
while ($birthday_row = $birthday_r->fetch_row()){
$birthday_array[] = array(
'title' => $birthday_row[0],
'start' => $birthday_row[1] . "-" . $birthday_row[2]
);
}
JavaScript:
var json_obj_birthday = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
var json_obj_birthday_len = json_obj_birthday.length;
var d = new Date();
var event = [];
for (var i=0;i<json_obj_birthday_len;i++){ // adding manually year
json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
event = {
'title' : json_obj_birthday[i].title,
'start' : json_obj_birthday[i].start
};
}
var json_obj_birthday = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
var json_obj_birthday_len = json_obj_birthday.length;
var d = new Date();
var event = [];
for (var i=0;i<json_obj_birthday_len;i++){ // adding manually year
json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
event.push({
'title' : json_obj_birthday[i].title,
'start' : json_obj_birthday[i].start
});
}
而且也没有得到想要的结果
第二次更新
我需要我正在尝试做的事情,因为我想将这个事件变量传递到jQuery full calendar中,下面是script=>
jQuery("#calendar").fullCalendar({ // initialize full calendar
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
events: [
event
] // here was my fault , I must to have `events: event,`
});
在将代码绑定到日历中后,不会插入信息,这就是我的意思,它不起作用
PS.如果有人对我正在做什么以及为什么更感兴趣,请也看看我前面的问题为什么不直接将json分配给事件
,然后更正开始
条目
var events = <?php echo isset($birthday_array) ? json_encode($birthday_array) : "[]" ?>;
var d = new Date();
for (var i = 0; i < events.length; i++){
events[i].start = d.getFullYear() + "-" + events[i].start;
}
var事件=;
var d=新日期();
对于(var i=0;i
请注意,我在PHP中添加了一个子句,这样,如果未设置$birth\u array
,javascript将接收一个空数组,而不是语法错误
您的代码无法工作,因为行event={…}
将event
中存储的数组替换为单个javascript对象。var json_obj_birth=;
var json_obj_birthday = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
var json_obj_birthday_len = json_obj_birthday.length;
var d = new Date();
var event = [];
for (var i=0;i<json_obj_birthday_len;i++){ // adding manually year
json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
var event2 = {
'title' : json_obj_birthday[i].title,
'start' : json_obj_birthday[i].start
};
event.push(event2);
}
var json_obj_birth_len=json_obj_birth.length;
var d=新日期();
var事件=[];
对于(var i=0;iPHP:
JavaScript:
var json_obj_birthday = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
var json_obj_birthday_len = json_obj_birthday.length;
var d = new Date();
var event = [];
for (var i=0;i<json_obj_birthday_len;i++){ // adding manually year
json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
event = {
'title' : json_obj_birthday[i].title,
'start' : json_obj_birthday[i].start
};
}
var json_obj_birthday = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
var json_obj_birthday_len = json_obj_birthday.length;
var d = new Date();
var event = [];
for (var i=0;i<json_obj_birthday_len;i++){ // adding manually year
json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
event.push({
'title' : json_obj_birthday[i].title,
'start' : json_obj_birthday[i].start
});
}
var json_obj_birth=;
var json_obj_birth_len=json_obj_birth.length;
var d=新日期();
var事件=[];
对于(var i=0;i我认为您的整个方法都是错误的。以下是我将如何做到这一点(此外,它不会显示警告/通知):
var json_obj_生日=;
var json_obj_birth_len=json_obj_birth.length;
var d=新日期();
var事件=[];
对于(var i=0;i
我的建议是:始终声明变量……决不要只是将/increment/etc附加到虚拟变量
最后,当将一些处理卸载到客户端JavaScript中时,您可能想考虑将其放入PHP/Server端。只是一个小的注释,而不是非常关键。
您在JavaScript循环中将一个“对象”指定为事件,而不是将一个索引分配给数组。.title,start:json_obj_birth[i].start});和用于转换为的json.stringify(事件)JSON@IgnacioVazquez-艾布拉姆斯事件=[]
如果不是多维数组?那很好。看看你在循环中做了什么。-1这和原来的问题完全一样。@Eric我没有解决他的全部问题。我解决了一个你聪明的人没有注意到的问题。现在请给我一些时间,让我发挥我的魔力,好吗?我假设$birth\u array
已初始化。PHP真的允许您附加到未初始化到数组的变量吗?@Eric是的,它允许。不,它未初始化,否则,isset()
,就没有任何用处了,就像你和他那样。很讽刺,不是吗?;)@DaHaKa“它不工作”是一个宽泛的陈述。什么不起作用?理解为什么不起作用,但我也试过你的例子,它不起作用well@DaHaKa:以何种方式不起作用?我将“事件”重命名为“事件”,因为这似乎诱使您犯下了以前的错误。您可能需要检查您是否在其他地方将其称为事件。