假设我们在这些行中有一些东西:
$.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('<?= $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调用中,它会得到不同的评估吗?
(在这里挣扎...
PHP 在
向客户端显示之前在服务器上编译。因此,将生成该 URL,并且可以作为 createURL 函数输出的任何内容在源中查看。
如果该标签位于PHP文件中(即在响应发送到浏览器之前将被处理的文件),则将被执行。
如果它在单独的 JS 文件中,或者在 HTML 文件(静态文件)中,则不会。
PHP
将在页面加载时呈现,浏览器不知道那里有什么 PHP 代码,它以 HTML 的形式从服务器交付。然后 JavaScript 在客户端执行。因此,如果您查看页面的源代码,您应该看到 PHP 创建的 URL。换句话说,它会起作用
同意@Marcus Recck上面的回答。PHP 被编译并返回响应,因此上面的 URL 将是可见的。
这里的一个好主意是检查您的浏览器是否存在 JavaScript 错误。不同的浏览器有不同的显示方式,但请寻找javascript控制台或类似的东西。此外,请检查浏览器查看的页面来源。这是为了确保当您将它们混合在一起时,事情会按您的预期工作。
url: 'createUrl('related'); ?>',
应该是
url:"createUrl('related'); ?>",我觉得...