我在项目中有一些模板文件,例如'/view/dynamic.html'包含这些简单的数据:
<div class="dynamic"></div>
在客户端:我有一个可点击的元素在我的网页上使用Jquery发布异步请求到服务器端。
$('a.clickable').on('click', function()
{
var $this = $(this);
var $type = $this.data('type');
var $project_id = 1;
$.ajax({
type: 'POST',
url: "php/zeek.php",
data: {
'method': 'clicked',
'type': $type,
'project_id': $project_id
},
dataType: 'text',
success: function($input)
{
console.log('result:' + $input);
},
error: function($request, $status, $error)
{
$('div.dynamic').replaceWith(
'<div class="dynamic"><h2>'
+ $error + '</h2></div>');
console.log($status + ' : ' + $error);
}
});
});
服务器端:我有一个函数显示动态视图文件的内容。
public function dynamic_display() {
ob_start();
include 'view/dynamic.html';
return ob_get_clean();
}
最后我有接收请求的函数:
case 'clicked':
$type = strtolower($params['type']);
if ($type == 'disconnect') {
echo("? " . $this->dynamic_display() . " ?");
return true;
}
问题:
当我用单元测试测试我的函数'dynamic_display'时,这个函数发送回正确的预期字符串。使用var_dump,我得到:
string(28) "<div class="dynamic"></div>
"
当我单击页面上的元素时:我在控制台上没有获得相同的结果
"result:? ?"
为什么不工作?发生了什么?如何让它发挥作用?
谢谢,的问候!狮子座
当我使用
include '/home/leo/zeek/view/dynamic.html';
代替
include 'view/dynamic.html';
我真的很惊讶?有人能解释一下吗?