gpt4 book ai didi

php - 使用 implode()、join() 或 json_encode() 将 PHP 数组传递到 Javascript 数组

转载 作者:行者123 更新时间:2023-11-28 09:55:42 25 4
gpt4 key购买 nike

我正在开发一个 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>

如果在本地主机上使用(没有 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 数组,那就太好了。

最佳答案

$arr 变量超出范围。如果您想使用全局 $arr 变量,则需要修改 jav_handler() 函数以将该变量引入本地作用域:

function jav_handler(){
global $arr;
// ...

但是,最好尽可能避免使用全局变量,因此首选方法是将函数更改为将数组作为参数,并在调用函数时显式传递它:

function jav_handler($arr){
// ...
}

jav_handler($arr);

关于php - 使用 implode()、join() 或 json_encode() 将 PHP 数组传递到 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com