2013-08-31 63 views
1

我有一個javascript函數,它有一些參數(一個數組)。我想在PHP中調用它。以下是我的代碼用PHP裏面的參數調用Javascript函數

<script type="text/javascript"> 

<?php 

$task_list=array(); 
     foreach($tasks as $row2){ 


      $task_list=$row2; 
     } 

     echo "display_diagram(".$task_list.");"; 

     ?> 

function display_diagram(var1){ 

    ......................... 
    ......................... 

} 

當我把它叫做沒有它正在任何一個參數(我可以顯示在javascript函數的內容。但是,當我設置參數(它是一個數組它劑量不工作。你可以給這個解決方案嗎?

+1

如果這是一個.js文件,那麼您不能在一個.js文件中調用php。你將不得不將JavaScript插入到一個PHP文件中以使其正常工作。 –

+0

不是這是一個.php文件 – Malintha

回答

4

這裏通常的做法是創建一個單獨的PHP文件,輸出JSON數據並使用AJAX請求獲取該數據下面是一個包含JSON數據內聯的示例,但我wouldn通常建議這樣做,特別是如果數據非常大的話。


使用json_encode()到PHP變量轉換成的東西,可以在JavaScript中使用。使用關聯數組,您將得到一個JavaScript 對象,例如{"a":1,"b":2,"c":3,"d":4,"e":5}。使用非關聯數組,您將獲得一個JavaScript 數組,如[1,2,3,4,5]

<script> 
<?php 
    $tasks = array(
     145 => array(
      'name' => 'Sorting Task', 
      'owner' => 'user1' 
     ), 
     2343 => array(
      'name' => 'Processing Task', 
      'owner' => 'user2' 
     ), 
     7266 => array(
      'name' => 'Another Task', 
      'owner' => 'user1' 
     ), 
     8373 => array(
      'name' => 'Lorem Ipsum Task', 
      'owner' => 'user3' 
     ) 
    ); 
    echo 'display_diagram(' . json_encode($tasks) . ')'; 
?> 

function display_diagram(tasks) { 
    $.each(tasks, function (id, task) { 
     console.log('Task #' + id + ': name=' + task.name + ', owner=' + task.owner); 
    }); 
} 
</script> 

上面的JavaScript使用jQuery來處理對象。它應該在JavaScript控制檯中輸出以下內容:

Task #145: name=Sorting Task, owner=user1 
Task #2343: name=Processing Task, owner=user2 
Task #7266: name=Another Task, owner=user1 
Task #8373: name=Lorem Ipsum Task, owner=user3 
+0

是的,它應該使用json_encode() –

+0

我該如何將它應用於我的場景? – Malintha

+0

正確。改變'$ task_list'爲'$ tasks'是要做的事情。 '$ task_list'沒有必要。 – 2013-08-31 19:18:56