1行しか出力しない場合にphpをjavascriptに出力する際に問題が発生します。forループをjavascriptに入れると、javascriptが機能します。エラーは発生せず、出力はありません。たとえば、firebugを使用すると、出力にバグがあります。
"'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
}]
});
};
このように1つだけ出力すると、機能します。
<?= "'" . '<a class="category" href="#">Text</a>' . "'" ?>
しかし、それをループに入れて、最後のものを除いてそれぞれの最後に'+を追加すると、それは壊れます。
私のforループは、Firebugでチェックするとこれを出力します。
'<a class="category" href="#"> Assault Ship</a>'+ '<a class="category" href="#"> Battlecruiser</a>'
私が知っていることから、これはjavascriptに有効であるはずですが、このような問題を回避するためにjavascriptを超えてphpを出力するためのより安全な別の方法はありますか?