Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
json将php变量编码为javascript_Php_Javascript_Json - Fatal编程技术网

json将php变量编码为javascript

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->

我使用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->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:以何种方式不起作用?我将“事件”重命名为“事件”,因为这似乎诱使您犯下了以前的错误。您可能需要检查您是否在其他地方将其称为
事件。