2011-12-18 62 views
0

如何在JS文件中輸入PHP數組的結果?用PHP填寫JS代碼片段

我有這個PHP - 摘錄返回數組:

$activiteiten = Project::getProjectnames($_DB); 
if(!empty($activiteiten)) { 
    foreach($activiteiten as $k => $v) { 
     $projectNames[] = $v['project']; 
    } 
} 

我怎樣才能得到這裏面這些值JS:

<script> 
    $(function() { 
     var availableTags = [ 
      "Option 1", 
      "Option 2", 
      "Option 3", 
      "Option 4" 
     ]; 
     $("#tags").autocomplete({ 
      source: availableTags 
     }); 
    }); 
</script> 

我想PHP數組中的Option 1代替, Option 2,Option 3,...但我該怎麼做?

我使用PHP echo -call生成JS。

+0

您是從JavaScript(Ajax)請求頁面,還是使用PHP生成JavaScript? – Ryan 2011-12-18 20:39:59

+0

我用PHP生成JS – Michiel 2011-12-18 20:40:20

回答

7
var availableTags = <?php echo json_encode($projectNames); ?>; 
+0

你忘記回聲 – Ximik 2011-12-18 20:43:29

+0

@Ximik:Hurr。對了謝謝。 – 2011-12-18 20:44:05

+0

好的!謝謝Ignacio! – Michiel 2011-12-18 20:46:25

1
<script> 
    $(function() { 
     var availableTags = [ 
      <?php 
       foreach($activiteiten as $k => $v){ 
         echo '"'.$v['project'].'",'; 
       } 
      ?> 
     ]; 
     $("#tags").autocomplete({ 
      source: availableTags 
     }); 
    }); 
</script> 
+0

這很好。但是,如何在使用PHP生成JS時使用它? – Michiel 2011-12-18 20:42:29

+0

有幾種方法,這些並不是最美的方法,但你可以有你的php邏輯,然後關閉php標籤,並將上面的代碼放在: 例如:<?php // code here?> JS here <?php // activiteiten loop here?>更多JS <?php // PHP邏輯結束?>。 – 2011-12-18 20:44:20

+0

好的,謝謝!但我想我會像Ignacio說的那樣做。這是更多的壓縮:-) – Michiel 2011-12-18 20:47:16

0

你想要做什麼是json encode數組和在javascript的背景下呼應它;從而設定一個等於它的變量。例如:

<script type="text/javascript"> 
var availableTags = <?php echo(json_encode($myArray)); ?> 
</script>