让我们说我们在这些方面有一些东西:
$.ajax({
success: function(html){
$("#related_events").append(html);
$("#related_events").fadeOut(150).fadeIn(150); //optional
type: 'get',
url: '<?php echo $this->createUrl('related'); ?>',
特别是在这一行上有一个问题:
url: '<?php echo $this->createUrl('related'); ?>',
通过考虑这个ajax调用,是否会执行回声? 要么 那个回声总是会被执行,因为在那个时候服务器端已经被触发了?
如果我在ajax调用之前有这个条件怎么办,那么在考虑到if的情况下是否会执行echo?
看看浏览器输出是没有用的我相信,因为,我们得到了回声,但是我们不知道是否,我们得到那个回声因为它将一直运行,或者它将有条件地运行。
if('<?= $something ?>' == 'create'){
$("#Event_name").focusout(function(){
$.ajax({
success: function(html){
$("#related_events").append(html);
$("#related_events").fadeOut(150).fadeIn(150); //optional
},
type: 'get',
url: '<?php echo $this->createUrl('related'); ?>',
data:
{
ind: $('#Event_name').val()
},
beforeSend: function(){
$("#related_events").empty();
},
cache: false,
dataType: 'html'
});
})
}
我确信这与我在此处对服务器/客户端进程的不良反应有关。
更新
我明白php代码会被执行。我没有得到的是:
1)他是否知道有条件的javascript?
2)如果我们正在进行ajax通话,它会得到不同的评估吗?
(在这里挣扎......)
答案 0 :(得分:3)
PHP在服务器显示给客户端之前编译。因此,无论您的createURL函数输出什么,都将生成URL,并且可以在源中查看。
答案 1 :(得分:1)
如果该标记位于PHP文件中(即在将响应发送到浏览器之前将被处理的文件),则将执行该标记。
如果它位于单独的JS文件中,或者位于HTML文件(静态文件)中,那么它将不会。
答案 2 :(得分:0)
当页面加载时,PHP将呈现,浏览器不知道那里有什么PHP代码,它是从服务器以HTML格式提供的。然后javascript在客户端执行。因此,如果您查看页面的源代码,您应该通过PHP查看创建的URL。换句话说,它会起作用
答案 3 :(得分:0)
同意@Marcus Recck上面的回答。编译PHP并返回响应,因此上面的URL将是可见的。
这里的一个好主意是检查浏览器是否存在JavaScript错误。不同的浏览器有不同的显示方式,但寻找一个javascript控制台或类似的东西。另外,请检查浏览器查看的页面来源。这是为了确保当你将这些东西混合在一起时,事情就像你期望的那样。
url: 'createUrl('related'); ?>',
应该是
url: "createUrl('related'); ?>",我觉得......