服务器端和客户端 - 我们什么时候可以将php放在javascript中


Server Side and Client Side - when can we place php inside javascript?

假设我们在这些行中有一些东西:

  $.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'); ?>",
我觉得...