将PHP输出到JavaScript函数

时间:2012-10-18 22:20:28

标签: php javascript html prototype

我输出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来避免这样的问题?

1 个答案:

答案 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; ?>

注意+和第一个条件的不同位置。

正如其他人所说,这种一般方法可能不是最好的,但这可能会使你的工作更好......