我需要在<?php include $this->_ script('admin/test.phtml'); ?>
中使用jquery来编写<div>
以便它可以正常工作。
我已经研究过并在所有回复中建议使用load("file.php")
,但它在我的情况下不起作用,因为它是一个框架,并且由于路由不起作用。
我尝试了这个并且它没有用,它确实包含在脚本中而不是在div中执行:
<script>
$('.btn-group').on('click', '#btn-edit', function(e) {
e.preventDefault();
var id = $(this).attr('data-id');
$('#myModal').modal({
backdrop: 'static'
});
<?php $_GET['id'] = id;?>
var php = "<?php include $this->_script('admin/teste.phtml') ?>";
$('.modal-body').html(php);
});
</script>
我尝试了这段代码但它也没有用:
<script>
$('.btn-group').on('click', '#btn-edit', function(e) {
e.preventDefault();
var id = $(this).attr('data-id');
$('#myModal').modal({
backdrop: 'static'
});
<?php $_GET['id'] = id;?>
var php = "include $this->_script('admin/teste.phtml')";
$('.modal-body').html('<?php' + php + '?>');
});
</script>
答案 0 :(得分:0)
让这样的东西工作的唯一方法是使用jQuery请求页面返回服务器以使服务器再次处理PHP。
但是,正如您所发现的那样,只加载该文件不起作用,因为该文件可能包含不存在的依赖项。
我解决这个问题的方式(我碰巧使用WordPress可能会改变我的答案的具体应用)是这样的:
jQuery的:
jQuery('.btn-group').on('click', '#btn-edit', function(e) {
jQuery.ajax({
type: "POST",
url: "/", //Or whatever the page you want to use to load this.
data: {"custom_php_action": "my_special_action"},
tryCount : 0,
retryLimit : 3,
success: function(res){
jQuery(".modal-body").html(res); //Div for my response
},
error: function(xhr, textStatus, errorThrown ) {
if (textStatus == 'timeout') {
this.tryCount++;
if (this.tryCount <= this.retryLimit) {
//try again
jQuery.ajax(this);
return;
}
return;
}
}
});
});
PHP(这是用于构建页面的任何内容都会改变的地方):
function my_custom_controller_function() {
if ( isset($_POST['custom_php_action']) && $_POST['custom_php_action'] == 'my_special_action' ) { //Tests for our AJAX conditions
//My Code Here -- Make sure whatever response is echoed and not simply returned.
//If the function returns a value, then echo it here.
//Example
echo 'My Response';
//Example
//Example 2
$data = my_function();
echo $data;
//Example 2
exit(); //Stop the rest of the page from loading.
}
}
add_action( 'wp', 'my_custom_controller_function' ); //Control when AJAX kicks in -- we don't want it firing too soon -- or too late.
这使用一个WordPress动作钩子,在加载WordPress和插件之后,但在处理任何主题文件之前触发(如果我正确理解我的钩子顺序)。根据您的框架,将取决于您如何包含您想要使用的代码。
这就是我解决动态加载信息的方法。希望您可以将此示例中的解决方案拼凑起来,因为我不知道您正在使用的类/对象组合来查找您尝试加载/包含的文档,我不知道详情是什么您正在构建的平台。