0

我是 PHP 新手,我来自 C/C++ 背景,我遇到了一个问题,我已经绊倒了一段时间。

我的 html 文件中有这段代码:

<div class="totaal clearfix">
<div class="border-left"></div>
<div class="content-totaal">
    <h2 class="vk"><?php echo $locLocal["lbl_totaal"]; ?></h2>
    <div class="totalekost" id="ajax_placeholder_total">
        <span id="prijs_totaal">
            <?php 
                $winkelwagentje->berekenTotaal();
            ?>
        </span> EUR
    </div>
</div>
<div class="border-right"></div>

更进一步,我有这段代码,当页面上的列表框更改时,它应该更新。

<script type="text/javascript">    
$('cb_verzendoptie').observe('change', function(event)
{
    var _verzendoptie = this.getValue();

    new Ajax.Updater( 'ajax_placeholder_port', 'ajax/berekenVerzendingskosten.php',
                                  { parameters: { verzendoptie: _verzendoptie},
                                  });

    $('ajax_placeholder_total').update("<?php echo date(DATE_RFC822); ?>" + " EUR" );                                      
});

我放置了“回显日期(DATE_RFC822)”来测试更新是否每次都会触发。那是我的问题,不是。他重复了一次日期和时间,但从那时起,由于某种原因,更新不再触发。日期时间保持不变。

奇怪的是,每次我的下拉框更改值时,此行上方的 Ajax.Updater 方法都会更新。我真的不知道为什么...

编辑:

日期只是存根数据,而不是我通常需要一个带有变量的 php 类的日期。变量在语句上方的 Ajax.Updater 方法中更新。但我没有改变。这就是为什么我尝试使用日期来查看语句是否更新。

4

4 回答 4

1

JavaScript在客户端工作,PHP在服务器端工作,每次你的javascript运行时,你的echo语句不会执行,它在服务器端执行一次,并发送到浏览器。如果要获取当前日期,可以使用 JavaScript 的Date 对象

于 2012-09-05T09:38:59.347 回答
0

$('ajax_placeholder_total').update("<?php echo date(DATE_RFC822); ?>" + " EUR" );?

jQuery的这段代码意味着这样的元素:

<ajax_placeholder_total>

</ajax_placeholder_total>

将被更新。

实际上,这甚至不会更新,因为您的选择器不是唯一的。

您最可能想要或需要做的#.ajax_placeholder_total.

看看是否有帮助。

于 2012-09-05T09:43:51.867 回答
0

我同意@janith 使用日期对象来更新$('ajax_placeholder_total').update函数

此外,您每次更改时都在执行 Ajax.Updater 函数,因此它每次都发生。

您可以设置一些条件来检查值是否更改,然后只执行 Ajax.Updater

$('cb_verzendoptie').observe('change', function(event)
{
    var _verzendoptie = this.getValue();
    if(// ur logic){
         new Ajax.Updater( 'ajax_placeholder_port', 'ajax/berekenVerzendingskosten.php',
                                  { parameters: { verzendoptie: _verzendoptie},
                                  });

          $('ajax_placeholder_total').update("<?php echo date(DATE_RFC822); ?>" + " EUR" );                                      

    }
});
于 2012-09-05T10:22:05.100 回答
0

您回显从 PHP 输出 JavaScript 并发送到浏览器的日期(而不是调用 JS 函数的时间),因此它将始终显示页面的生成时间。

Ajax 的东西发出一个新的 HTTP 请求,因此每次运行时它都会从服务器获取新数据。

于 2012-09-05T09:34:53.393 回答