我输出php到javascript时遇到问题我只输出一行javascript工作时我把我的for循环放在javascript中没有错误只是没有输出我使用firebug而且我看到输出有bug例如:
“'ANS”。 '+'。 “”ANS“。 '+'。 “'ANS”如果我从php输出这样的文字就行了。当我像这样输出一个锚时:
'"' . '<a href="#">Text</a>' . '"';
然而,当我把它放在for循环中时它会中断我尝试了很多选项:
function step1() {
modalbox.show(new Element("div").insert(
new Element("p", { "align": "justify" }).insert(
<?php $i = 0; ?>
<?php foreach ($items as $category => $itemsattr): $i++; ?>
<?php if($i == 27): ?>
<?= "'" . '<a class="category" href="#"> '. $category . '</a>' . "'" ?>
<?php endif; ?>
<?= "'" . '<a class="category" href="#"> '. $category . '</a>' . "'+" ?>
<?php endforeach; ?>
)
), {
"title" : "Step 1/3",
"width" : 800,
"options" : [{
"label" : "Next »",
"onClick" : step2
}]
});
};
如果我只输出一个这样的作品:
<?= "'" . '<a class="category" href="#">Text</a>' . "'" ?>
然而,当我把它放在一个循环中并在除了最后一个之外的每个末尾添加'+时它会中断。
使用Firebug检查时,我的for循环输出:
'<a class="category" href="#"> Assault Ship</a>'+ '<a class="category" href="#"> Battlecruiser</a>'
据我所知这应该对javascript有效是否还有另一种更安全的方法来输出php过去的javascript来避免这样的问题?
答案 0 :(得分:1)
而不是:
<?php foreach ($items as $category => $itemsattr): $i++; ?>
<?php if($i == 27): ?>
<?= "'" . '<a class="category" href="#"> '. $category . '</a>' . "'" ?>
<?php endif; ?>
<?= "'" . '<a class="category" href="#"> '. $category . '</a>' . "'+" ?>
<?php endforeach; ?>
如果你尝试这样的话怎么办?
<?php echo "'"; ?>
<?php foreach ($items as $category => $itemsattr): $i++; ?>
<?php if($i == 27): ?>
<?= '<a class="category" href="#"> '. $category . '</a>' ?>
<?php endif; ?>
<?= '<a class="category" href="#"> '. $category . '</a>' ?>
<?php endforeach; ?>
<?php echo "'"; ?>
你也可能有更好的运气;它比你的可扩展性更具可扩展性:
<?php foreach ($items as $category => $itemsattr): $i++; ?>
<?php if($i == 0): ?>
<?= "'" . '<a class="category" href="#"> '. $category . '</a>' . "'" ?>
<?php else: ?>
<?= "+'" . '<a class="category" href="#"> '. $category . '</a>' . "'" ?>
<?php endif; ?>
<?php endforeach; ?>
注意+和第一个条件的不同位置。
正如其他人所说,这种一般方法可能不是最好的,但这可能会使你的工作更好......