无法访问通过ajax加载的php文件中的类对象

时间:2013-06-01 14:16:07

标签: php jquery ajax

我遇到了下面的一个小问题,我正在努力学习一些未来的项目,需要一只手。

以下是设置:

  1. 我在模型目录中的php中有一个user类。
  2. 我的根目录中有一个home.php文件。
  3. 我在home.php文件中包含了用户类的模型,并且能够正常访问它。
  4. 我有一个profile.php文件,我想通过ajax加载到home.php文件中。
  5. 我可以正常加载profile.php文件,但问题是当我通过ajax加载页面时,没有显示通过<?php echo $user->first_name; ?>调用的该页面上的信息。但是,如果我在没有ajax的情况下正常加载页面,它就会显示正常。
  6. 到目前为止我尝试过:

    1. 我尝试在配置文件页面中包含用户类,但是它给了我一个错误,它已经包含在内。
    2. 我不想把它放到会话变量中,因为我希望能够从这里访问这个类。
    3. 我还需要能够访问其他屏幕上的用户类,这就是我将它包含在home.php文件中的原因。
    4. 任何帮助都会非常感激,因为我对使用php和ajax很新。

      由于

      以下是我正在使用的一些代码。

      home.php

      //Here we include are models that we need access to.
      include 'apps/user/model/user.php';
      
      $my_user = new User();
      global $user;
      $user    = $my_user->getUserById($_SESSION['loggedin_user_id']);
      

      profile.php

      <input type="text" value="<?php echo $user->username; ?>" class="input-xlarge">
      

      javascript通过ajax加载表单

      $.ajax({
          url: 'apps/user/view/profile.php',
          success: function(data){
                   if(data != null) $("#content").html(data);
          }
      });
      

      当我查看控制台时,我也收到以下错误。

      [01-Jun-2013 10:38:03] PHP注意:未定义的变量:第23行/Users/btackett1377/development/Test/Base/apps/user/view/profile.php中的用户

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用require_once代替include?我会尝试在主页和个人资料页面中要求用户类。

供您参考,PHP有四个包含文件的功能:

  • include - 盲目地包含所请求的文件,而不考虑它是否已被包含在内。如果找不到该文件,则会发出警告。
  • include_once - 确保文件仅包含一次。如果找不到该文件,也会发出警告。
  • require - 与include类似,但如果找不到请求的文件,则会导致致命错误。
  • require_once - 与include_once类似,但如果找不到该文件会导致致命错误。