0

我正在使用 cakephp。我有一个 ajax 请求,它正在拉一个要显示的 php 文件。
我遇到的问题是被拉取的 php 文件需要在拉取之前执行 php 代码。它是创建表单的 cakephp 代码。目前,如果我直接通过浏览器查看它,则显示 php 文件是因为它在文件中而不是 html 中。

我不确定如何克服这一点。有任何想法吗?
非常感谢

代码
Jquery -

var request = $.ajax({
        url: "/files/Users/"+name+".ctp",
        type: "GET",
        dataType: "html",
        error: function(jqXHR, textStatus) {
            $('#pageLoading p').html('We have experienced a problem. Please try again later.');
            return false;
        },
        success: function(msg) {
            sortData(msg);
        }

php 文件的一部分(实际上是一个 .ctp 文件,但其中包含 .php 代码) -

<?php
echo $this->Form->create();
$options = array(
'label' => ' ',
'id' => 'formSubmit',
'class' => 'userSubmit',
'div' => FALSE
);
echo $this->Form->end($options);
?>

使用 cakephp,这个 php 显示为 html,但是当我使用 ajax 抓取它并在屏幕上打印它时,它会显示为如图所示。

4

2 回答 2

1

您的基本想法似乎是错误的:不要.ctp直接获取文件,而是坚持控制器/视图的想法。所以改为在你的控制器
中创建一个控制器方法Users

public function show_form($name){
}

确保您已准备好包含表单代码的匹配视图文件。例如View/Users/show_form.ctp

下一步:确保您的脚本调用:http://example.com/users/show_form/the_name

于 2012-08-01T15:15:13.783 回答
1

url: "/files/Users/"+name+".ctp",

在我看来不对。

您需要传入 ,controller/action以便 Cake 正确执行和解析视图文件。

$this->layout = 'ajax';可能很方便;所以你不会在响应中得到你的“主要”布局html代码。

于 2012-08-01T15:08:10.437 回答