私はWordpressプラグインに取り組んでおり、PHP配列をJavascript配列に渡す必要があります。join() 、 implode() 、さらには Json_encode を使用してみました。しかし、ワードプレスは値を表示していません。
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]: 無効な引数が \wp-content\plugins\Animation\animation.php の 129 行目に渡されました。リファラー: http://localhost/Website/wp-admin/options-general. php?page=js
implode() の場合も同様です。サーバー エラー ログには、implode() に関する上記の警告が表示されます。
次に、以下のコードを使用して json_encode を試しました。
var lat = <?php echo json_encode($php1); ?>;
しかし、no 値が返されます。
編集: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 配列に渡すのを手伝っていただければ幸いです。