2014-09-29 64 views
1

我想初始化輸入與地圖api自動完成 - 輸入數量來自數據庫,但我不能夠在while循環中執行一個簡單的JavaScript函數。javascript onload while while

的initialazing工作正常與window.onload,但我不能在這個while循環執行的功能...

出現在控制檯中沒有錯誤,1個結果從數據庫中來。

$limit = $bdd->prepare('MySQL query'); 
$limit->execute(); 

while ($city = $limit->fetch()) { 
     echo 'result'; ?> 

     <script type="text/javascript"> 
       function initializeLimitCity() { 
         alert("Hello World"); 
       }; 
       initializeLimitCity(); 
     </script> 

<?php 
} 
+0

你爲什麼扔了很多'''節中,並從window.onload執行。 – tfrascaroli 2014-09-29 09:41:23

回答

2

你不能聲明相同的函數多次......你的代碼改成這樣:

<script type="text/javascript"> 
    function initializeLimitCity() { 
    alert("Hello World"); 
    }; 
</script> 

<? 
$limit = $bdd->prepare('MySQL query'); 
$limit->execute(); 

while ($city = $limit->fetch()) { 
    echo 'result'; ?> 

    <script type="text/javascript"> 
    initializeLimitCity(); 
    </script> 

<?php 
} 
?> 
1
<script type="text/javascript"> 
       function initializeLimitCity() { 
         alert("Hello World"); 
       }; 

     </script> 
<?php 
$limit = $bdd->prepare('MySQL query'); 
$limit->execute(); 

while ($city = $limit->fetch()) { 
     echo 'result'; ?> 

     <script type="text/javascript"> 
       initializeLimitCity(); 
     </script> 

<?php 
} 
+0

你確定這在工作嗎?因爲它不適合我... – gr3g 2014-09-29 10:12:33

1

你生成具有相同名稱數次的功能,它不會工作。

我不會這樣生成它。讓客戶端(JavaScript)的做的工作,從而減少字節傳輸(HTML):

<?php 
$cities = $limit->fetch_all(); 
?> 

<script type="text/javascript"> 
    function initializeLimitCity(cities) { 
     alert(cities); 
    }; 
    initializeLimitCity(<?php echo json_encode($cities); ?>); 
</script>