我是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" );
});
我将'echo date(DATE_RFC822)'用于测试更新是否每次实际触发。这是我的问题,但事实并非如此。他回应了一次日期和时间,但从那时起,由于某种原因,更新不再触发。日期时间保持不变。
奇怪的是,每次我的下拉框改变值时,此行上方的Ajax.Updater方法都会更新。我真的不知道为什么......
修改
日期只是stubb数据,而不是我通常需要带有变量的php类的日期。该变量在语句上方的Ajax.Updater方法中更新。但我没有改变。这就是为什么我试图使用日期,看看语句是否确实更新。
答案 0 :(得分:1)
JavaScript在客户端工作,PHP在服务器端工作,每次javascript运行时,你的echo语句都不会执行,它在服务器端执行一次,然后发送到浏览器。 如果您想获取当前日期,可以使用JavaScript Date object
答案 1 :(得分:0)
您回显从PHP输出JavaScript并发送到浏览器的日期(而不是在调用JS函数时),因此它将始终显示页面生成的时间。
Ajax创建了一个新的HTTP请求,因此每次运行时都会从服务器获取新数据。
答案 2 :(得分:0)
$('ajax_placeholder_total').update("<?php echo date(DATE_RFC822); ?>" + " EUR" );
?
这个jQuery代码意味着像这样的元素:
<ajax_placeholder_total>
</ajax_placeholder_total>
将会更新。
实际上,由于您的选择器不是唯一的,因此甚至不会更新。
您最有可能或需要做的是在#
前面使用.
或ajax_placeholder_total
(分别为id和类)。
看看是否有帮助。
答案 3 :(得分: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" );
}
});