AJAX加载文件的外部变量

时间:2018-02-08 16:24:18

标签: javascript php ajax

我开始了一个新项目,这是第一次使用语言文件。我用这个导入语言文件:

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();
} 

0 个答案:

没有答案