在ajax中调用phtml文件

时间:2012-06-23 08:11:59

标签: javascript jquery ajax php

我想通过ajax调用catalog / layer / view.phtml文件。

代码中没有任何变化,一切都相同,但只想在ajax中调用view.phtml。

<reference name="left">
<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
</reference>

我将使用以下jquery代码。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>

<script type="text/javascript">
    $(function() {
    $("#showsearch").load("/app/design/frontend/default/mytheme/template/catalog/layer/test.phtml", function(response, status, xhr) {    alert(response);   
});
     });
</script>
<div id="showsearch"></div> 

我将jquery代码放在view.phtml中,但它返回404错误。

我做的事情是完全不可能的,还是可以通过其他方式完成?

1 个答案:

答案 0 :(得分:0)

使用JavaScript,您只能在浏览器的地址栏中输入.load()个网址(因为JS是客户端)。您不能以这种方式使用服务器的绝对文件路径。

要加载此文件,您基本上有以下选项:

  1. 将文件放在服务器的DocumentRoot上方(即最有可能是index.php个文件的位置,通常是public_htmlwww
  2. 使用PHP包含它:<?php include($yourAbsolutePath); ?>
  3. 由于您希望使用AJAX加载文件,因此您可以做的最好的事情是.load()一个高于DocumentRootinclude()文件的PHP文件。< / p>


    示例

    1. DocumentRoot(例如myFile.php)
    2. 中创建.php文件
    3. 将以下myFile.php:

      <?php include('/app/design/frontend/default/mytheme/template/catalog/layer/test.phtml'); ?>
      
    4. 将您的.load()行更改为:

      $("#showsearch").load("/myFile.php", function(response, status, xhr) { ...