2012-10-18 76 views
-1

我有問題輸出PHP到JavaScript時,我只輸出一行JavaScript的作品,當我把我的循環在JavaScript打破沒有錯誤只是沒有輸出我使用螢火蟲,我看到輸出是竊聽例如:輸出PHP到JavaScript函數

「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>' . "'" ?> 

但是,當我把它放在一個循環中,並添加'+在除了最後一個的每一個結束時它打破。

'<a class="category" href="#"> Assault Ship</a>'+ '<a class="category" href="#"> Battlecruiser</a>' 

據我所知,這應該是有效的JavaScript有另一種方式更安全的outputing PHP過去的JavaScript來避免這樣的問題:當使用Firebug檢查

我的for循環輸出呢?

+1

爲什麼我們在看PHP而不是什麼在HTML輸出問題應該更加明顯?此外,'ew'在服務器端代碼構建客戶端代碼。這不是一個歷史上真棒的方法。最好是編寫靜態JS來處理從服務器端傳來的JSON對象。 –

+0

這是什麼?<?php if($ i == 27):?>'for?沒有+在那裏簽字。週期結束?看看Firebug報告的JS錯誤是什麼。 – Reflective

回答

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

請注意+以及第一個條件的不同位置。

像其他人說,這種一般方法可能不是最好的,但是這可能讓你有更好地工作......