【发布时间】:2014-10-10 05:28:07
【问题描述】:
我有以下我成功转换为coldfusion,据我所知我的谈话是正确的,但行为很烦人,不确定
这里是php变种
<?php if (isset($_SESSION['box_status'])) {
print '<script type="text/javascript">';
print '$(function() {';
foreach ($_SESSION['box_status'] as $openedbox) {
print 'Popup('.$openedbox['partner_id'].',"'.$openedbox['partner_username'].'",'.$openedbox['box_status'].');';
}
print "});";
print '</script>';
}
?>
cfm 变体
<cfif isDefined('session.box_status')>
<cfsavecontent variable="a">
<script type="text/javascript">
$(function() {
for (<cfoutput>#session.box_status#</cfoutput> in openedbox) {
Popup(#openedbox['partner_id']#,"#openedbox['partner_username']#",#openedbox['box_status']#);
}
});
</script>
</cfsavecontent>
<cfoutput>#a#</cfoutput>
</cfif>
代码在 php 中运行良好,但如果我刷新页面,我永远不会在冷融合中保持会话处于活动状态,而 php 正在这样做''
这是生成的带有转储的PHP代码
转储
array(2) {
[0]=>
array(3) {
["partner_id"]=>
string(1) "2"
["partner_username"]=>
string(9) "Elizabeth"
["box_status"]=>
string(1) "1"
}
[1]=>
array(3) {
["partner_id"]=>
string(1) "3"
["partner_username"]=>
string(6) "Joseph"
["box_status"]=>
string(1) "1"
}
}
php代码生成的代码
<script type="text/javascript">$(function() {Popup(2,"Elizabeth",1);Popup(3,"Joseph",1);});</script>
【问题讨论】:
-
您是否开启了会话管理并检查了超时。还有一件事我在 php cod 中看不到 javascripts for loop,但它在 CF 中。
-
是的,会话管理已启用,并且有 40 分钟的超时时间
-
所以如果php中没有javascript的for循环,其实是在使用foreach循环,在cfscript中我们有for循环就对了
-
但是你的代码没有被包裹在
如果你想循环结构然后用户收集循环 -
好奇,你说
it never keeps the session alive。那么页面第一次可以工作,刷新后就不能工作了?
标签: php coldfusion