2012-01-16 194 views
0

以下效果很好,當不工作:字符串傳遞給JS

var options = '<select><option value ="Unknown">Unknown</option><option value ="Yes">Yes</option><option value ="No">No</option><option value ="Both">Both</option></select>'; 
alert(options) 

然而,如果該字符串通過PHP的foreach產生時,可變的選項不被識別,因此,我無法與JS使用。例如:

<?php foreach($pickListFields as $field_id => $options): ?> 
    <?php 
     $options_array = explode("\n", $options); 
     $options_select = '<select>'; 
     foreach($options_array as $k => $option) { 
      $options_select .= '<option value ="' . $option . '">' . $option . '</option>'; 
     } 
     $options_select .= '</select>'; 
    ?> 
    var options = '<?= $options_select ?>'; 
<?php endforeach; ?> 

上述變量的選擇產生的,不起作用,即使當我看到源代碼的Firefox,我可以看到VAR的選項是:

var options = '<select><option value ="Unknown">Unknown</option><option value ="Yes">Yes</option><option value ="No">No</option><option value ="Both">Both</option></select>'; 

那麼爲什麼就不能使用,如果它與第一個例子相同?我無法提醒,或將其分配給一個字段,但我可以用第一個例子。

+0

你確定給出的源代碼*完全相同嗎?我也會嘗試刪除等號前的空格。 – 2012-01-16 16:19:27

+0

這是,你可以看到它...我只是複製粘貼。 – luqita 2012-01-16 16:20:29

+0

你究竟在哪裏嘗試使用它?我認爲你是在一個JavaScript塊內完成這項工作?我們可以從$ pickListFields中看到$ options嗎? – dreamrunner 2012-01-16 16:28:15

回答

1

您正在使用PHP內部,而不是JavaScript代碼的PHP標籤:

var options = '<?= $options_select ?>'; 

應該是:

echo '<script language="javascript" type="text/javascript">var options="' . $options_select . '";</script>'; 
+0

不知道這是否工作...它也在我的頁面中添加文本。 – luqita 2012-01-16 16:49:27

+0

好吧,我不得不刪除

0

嘗試也許HTML編碼的所有輸出選項,可以有一些特殊字符的隱藏的地方