0

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

  $.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 调用,它会得到不同的评估吗?

(在这里挣扎……)

4

4 回答 4

3

PHP is compiled on the server before it's shown to the client. So that URL will be generated and will be viewable in the source as whatever your createURL function outputs.

于 2012-06-15T17:16:07.153 回答
1

If that tag is inside a PHP file (i.e. a file which will be processed before the response is sent to browser), it will be executed.

If it is in a separate JS file, or inside a HTML File (static files), then it won't be.

于 2012-06-15T17:16:33.250 回答
0

同意@Marcus Recck 上面的回答。PHP 被编译并返回响应,因此上面的 URL 将是可见的。

一个好主意是检查您的浏览器是否有 JavaScript 错误。不同的浏览器有不同的显示方式,但请寻找 javascript 控制台或类似的东西。此外,请检查浏览器查看的页面来源。这是为了确保当您将它们混合在一起时,事情会按照您的预期工作。

url: 'createUrl('相关'); ?>',

应该

url: "createUrl('related'); ?>",
我觉得...

于 2012-06-15T17:21:00.710 回答
0

The PHP will render when the page loads, the browser has no idea what PHP code is there, it is delivered as HTML from the server. Then the javascript executes on the client-side. So if you view the page's source you should see the created URL by PHP. In other words, it will work

于 2012-06-15T17:17:10.393 回答