我正在开发一个 Wordpress 插件,我需要将 PHP 数组传递给 Javascript 数组。我尝试过使用 join()、implode() 甚至 Json_encode。但是,wordpress 没有显示任何值。
使用 join() 时,我使用了以下代码:
<?php
$php1 = array(1,2,3);
?>
<script language='Javascript'>
var lat = ["<?php echo join("\", \"", $php1); ?>"];
document.write(lat[1]);
</script>
如果在 localhost(没有 wordpress)上使用,上面的代码提供了一个有效的输出。但是,不知何故,它不适用于 Wordpress。“apache 错误日志”显示此消息:
PHP 警告:join() [function.join]:在第 129 行的 \wp-content\plugins\Animation\animation.php 中传递的参数无效,引用:http://localhost/Website/wp-admin/options-general。 php?page=js
implode() 也是如此。服务器错误日志显示与 implode() 相同的上述警告。
然后我使用下面的代码尝试了 json_encode:
var lat = <?php echo json_encode($php1); ?>;
但是没有返回值。
编辑:我用于 JSON 的代码:
<?php
/*
Plugin Name: PHPToJavascript
*/
$arr = array(1,2,3,4,5,6,7,8,9); //array to pass
add_action('admin_menu','admin_jav');
function admin_jav(){
add_submenu_page('options-general.php','Javarray','Javarray','manage_options','javarray',jav_handler);
}
function jav_handler(){
echo 'Into handler';
?>
<SCRIPT LANGUAGE = 'Javascript'><!--
var sm=<?php echo json_encode($arr); ?>; //using Json
document.write(sm[1]); //doesnt display any output!!!
</SCRIPT>
<?php
}
?>
请指导我完成这个。我很感激任何帮助。如果您能帮我将此 PHP 数组传递给 javascript 数组,那就太好了。