2013-11-27 16 views
0

我用php/html編寫的網頁,每次按下提交按鈕時都會將文本框的內容添加到會話數組中。我需要做的是在會話數組中獲取未知數量的元素,並在我的代碼的JavaScript部分中訪問每個元素。如何從php中的會話數組中獲取未知數量的元素,並將它們用作JavaScript中的單獨變量?

這裏是我的代碼的PHP部分至今:

<?php 
    session_start(); 

    if(!isset($_SESSION['answers'])) 
    $_SESSION['answers'] = array(); 
?> 

<?php 
if (!empty($_POST['submit'])) { 
    unset($_POST['submit']); 
    $_SESSION['locations'][] = $_POST; 
} 

if (!empty($_POST['display'])){ 
    foreach ($_SESSION['locations'] as $array){ 
    echo "<script type='text/javascript'>alert('{$array['lat']}')</script>"; 
} 
} 
?> 

這將顯示每個作爲警報,但我需要他們,像在JavaScript訪問的變量。

在此先感謝

回答

1

只需將您的數據編碼爲JSON即可。它將被瀏覽器解析爲JavaScript數組/對象字面量:

var locations = <?php echo json_encode($_SESSION['locations']) ?>; 

對陣列的每個元素都有一個變量不是一個好的解決方案。

+0

謝謝,雖然我對JSON比較陌生。我將如何訪問新創建的JSON對象的特定元素? – Ryan

+0

正如我所說的,生成的代碼將被解析的數組或對象文字(因爲JSON可以這樣interpertreted)。在JavaScript中,您可以使用括號表示法訪問數組,例如'arr [0]','arr [1'],...'arr [i]'和通常帶點記號的對象'obj.propertyName',但是您也可以使用括號表示法,'obj ['propertyName']'。請參閱http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json。 –

+0

當我使用以下var loc = <?php echo json_encode($ _ SESSION ['locations'])?>; alert(loc [0]);在我的代碼的JavaScript部分,它打破了代碼。 – Ryan

相關問題