我正在使用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抓取它并在屏幕上打印它时会显示如图所示。
答案 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