Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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
在javascript中动态获取php数组_Javascript_Php_Jquery - Fatal编程技术网

在javascript中动态获取php数组

在javascript中动态获取php数组,javascript,php,jquery,Javascript,Php,Jquery,在下面的代码中,我尝试使用jQuery添加一个新的div元素 $(document).ready(function () { var languages = <?php echo json_encode($languages); ?>; var div = ''; $.each(languages, function (key, value) { div = '<div class="main bg_notice" style="pad

在下面的代码中,我尝试使用jQuery添加一个新的div元素

$(document).ready(function () {
  var languages = <?php echo json_encode($languages); ?>;
  var div       = '';
    $.each(languages, function (key, value) {
      div  = '<div class="main bg_notice" style="padding:3px; line-height:20px;">';
      div += '  <img src="/lang/' + value['directory'] + '/admin/images/' + value['image'] + '" alt="' + value['name'] + '" title="' + value['name'] + '" style="border:0;">';
      div += '  <b><?php echo TEXT_MASK_ALIAS; ?></b>';
      div += '  <input type="text" name="mask_alias[' + value['id'] + ']" value="" style="width:80%" maxlength="255">';
      div += '</div>';
      $('[name="categories_name[' + value['id'] + ']').closest('div').after(div);
    });
});
如何将其转化为javascript的写作风格

$languages[$i]['id']
相当于

+ value['id'] +
在javascript中

结果应该类似于此非工作代码

div += '  <input type="text" name="mask_alias[' + value['id'] + ']" value="<?php echo (isset($mask_alias[$languages[$i]['id']]) ? stripslashes($mask_alias[$languages[$i]['id']]) : $categories_desc_fields['mask_alias']); ?>" style="width:80%" maxlength="255">';

div+='
var languages=JSON.parse()'
我怀疑
languages
是JSON格式的字符串,而不是实际的对象

尝试使用
JSON.parse
将字符串转换为对象


var languages=JSON.parse()

parse()方法解析JSON字符串,构造字符串描述的JavaScript值或对象


您应该使用php和javascript来完成部分工作

我建议在PHP中,您创建一个基于语言的新数组,该数组将被提交给javascript,所有PHP级别的计算都已经完成

比如说

// php code
// you already have $languages defined
$jsLanguages = array_map(function ($key, $lang) {
  $lang['mask'] = isset($mask_alias[$lang['id']]) ? stripslashes($mask_alias[$lang['id']]) : $categories_desc_fields['mask_alias'];
  $lang['imageURL'] = "/lang/{$lang['directory']}/admin/images/{$lang['image']}";
  return $lang;
}, $languages);
然后

$(文档).ready(函数(){
var语言=;
var div='';
$.each(语言、函数(键、语言){
div='';
div+='';
div+='';
div+='';
div+='';
$('[name=“categories_name['+lang.id+']”)。最近('div')。在(div)之后;
});
});

既然您是在document.ready中完成这项工作的,那么值得指出的是,您可能只需要使用php就可以完成这项工作,而不必担心通过javascript读取php变量。可能只有我一个人,但我真的很难理解您的要求,您能详细说明吗?我已经添加了我想要的代码行ke更改为javascript语法。Post(部分)请发布
的内容。var语言是0:Object{id:“2”,name:“Deutsch”,code:“de”,…}1:Object{id:“1”,name:“English”,code:“en”,…}
var languages=;
更短。php部分导致ShopSystems加载的另一个javascript出错,我总是忘记“使用”-该更改可能会起作用。如果它产生错误,错误是什么?当我使用您的php代码(甚至在shopsystem的原始文件中)时,它会导致错误TypeError:a在ckeditor.js中未定义如果我将function(key,lang)更改为function(lang),它似乎可以工作
// php code
// you already have $languages defined
$jsLanguages = array_map(function ($key, $lang) {
  $lang['mask'] = isset($mask_alias[$lang['id']]) ? stripslashes($mask_alias[$lang['id']]) : $categories_desc_fields['mask_alias'];
  $lang['imageURL'] = "/lang/{$lang['directory']}/admin/images/{$lang['image']}";
  return $lang;
}, $languages);
$(document).ready(function () {
  var languages = <?php echo json_encode($jsLanguages); ?>;
  var div       = '';
    $.each(languages, function (key, lang) {
      div  = '<div class="main bg_notice" style="padding:3px; line-height:20px;">';
      div += '  <img src="' + lang.imageURL + '" title="' + lang.name + '" style="border:0;">';
      div += '  <b><?php echo TEXT_MASK_ALIAS; ?></b>';
      div += '  <input type="text" name="mask_alias[' + lang.id + ']" value="' + lang.mask + '" style="width:80%" maxlength="255">';
      div += '</div>';
      $('[name="categories_name[' + lang.id + ']"').closest('div').after(div);
    });
});