我有javascript方法
function getLocalizedString(lang,key) {
alert("Hello! I am an alert box!!");
var english = {};
english['categories'] = {'Categories'};
var arabic = {};
arabic['categories'] = {'التصنيفات'};
var french = {};
french['categories'] = {'Catégories'};
if (lang === "ar") {
return arabic[key];
} else if (lang === "fr") {
return french[key];
} else {
return english[key];
}
}
而且我正试图在我的PHP代码中这样称呼它
<div class="row-fluid" id="desktopCategories">
<?php
$lang = "ar";
$key = "categories";
$catg = echo '<script type="text/javascript">getLocalizedString("'.$lang.'","'.$key.'");</script>';
//$catg = getLocalizedString($lang, 'categories');
?>
<h1 style="text-align: center;"><?php echo $catg ; ?></h1>
</div>
但是它不起作用并且给我解析错误,任何人都可以请教吗?
如果从外部文件加载JavaScript,则可能需要通过将函数调用包装在window.onload
中来确保首先加载JavaScript。
$catg = echo '<script type="text/javascript">window.onload = function() { getLocalizedString("'.$lang.'","'.$key.'"); };</script>';
您无法从PHP中“调用” JavaScript。 JavaScript是客户端代码,PHP是服务器代码。从对象分配中删除花括号,然后用document.write
调用JS代码以显示该函数的返回值,如下所示:
<script type="text/javascript">
function getLocalizedString(lang,key) {
alert("Hello! I am an alert box!!");
var english = {};
english['categories'] = 'Categories'; // <-- removed curly braces
var arabic = {};
arabic['categories'] = 'التصنيفات'; // <-- removed curly braces
var french = {};
french['categories'] = 'Catégories'; // <-- removed curly braces
if (lang === "ar") {
return arabic[key];
} else if (lang === "fr") {
return french[key];
} else {
return english[key];
}
}
</script>
<div class="row-fluid" id="desktopCategories">
<?php
$lang = "ar";
$key = "categories";
?>
<h1 style="text-align: center;">
<script type="text/javascript">
document.write(getLocalizedString('<?php echo $lang; ?>', '<?php echo $key; ?>'));
</script>
</h1>
</div>