ajax拉一个php文件

时间:2012-08-01 14:35:27

标签: cakephp jquery

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

我不确定如何克服这个问题。任何想法?
非常感谢

CODE
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抓取它并在屏幕上打印它时会显示如图所示。

2 个答案:

答案 0 :(得分:1)

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

我看错了。

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

同样$this->layout = 'ajax';可能很方便;因此,您不会在响应中使用“主要”布局html代码。

答案 1 :(得分:1)

您的基本想法似乎有问题:不要直接获取.ctp文件,而是坚持控制器/视图的想法。
因此,在Users控制器

中创建一个控制器方法
public function show_form($name){
}

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

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