我开始了一个新项目,这是第一次使用语言文件。我用这个导入语言文件:
if(!isset($_SESSION["lang"])) {
$_SESSION["lang"] = "en";
}
require_once('./inc/lang/'.$_SESSION["lang"].'.php');
对于通常的index.php来说这不是问题:
<div id="login">
<form method="post">
<label for="usrName"><?php echo $mainloginPage['userName']; ?></label><br />
<input type="text" id="usrName" maxlength="25" autofocus />
<br />
<br />
<label for="usrPassword"><?php echo $mainloginPage['password']; ?></label><br />
<input type="password" id="usrPassword" />
<p class="center">
<a href="#" onclick="loadIn('lostPW')"><?php echo $mainloginPage['forgotpw']; ?>?</a>
<br />
<br />
<a href="#" onclick="loadIn('signUp')"><?php echo $mainloginPage['register']; ?></a>
</p>
<input type="submit" value="<?php echo $mainloginPage['login']; ?>" />
</form>
</div>
你看到$ mainLoginPage - 这是语言文件中的一个变量。 当我使用AJAX加载另一个文件并替换此表单部分时,变量不适用,并且我得到未定义变量的错误。
加载的代码(/inc/templates/lostPW.php):
<form method="post">
<label for="mail"><?php echo $mainloginPage['mail']; ?>:</label><br />
<input type="text" id="usrMail" autofocus />
<p class="center">
<a href="#" onclick="loadIn('login')"><?php echo $mainloginPage['login']; ?>?</a>
<br />
<br />
<a href="#" onclick="loadIn('signUp')"><?php echo $mainloginPage['register']; ?></a>
</p>
<input type="submit" value="<?php echo $main['send']; ?>" />
</form>
onclick事件只是加载了一个通常的xhttp请求的函数。
如何使用ajax新加载的文件获取此变量?
loadIn功能
function loadIn(file) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("login").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "/inc/templates/" + file + ".php", true);
xmlhttp.send();
}