2012-10-23 104 views
0

我不確定是否有可能,或者如果有另一種方法來做到這一點,但我一直在試圖循環使用PHP的JavaScript函數。PHP循環JavaScript函數

的JavaScript/PHP函數:

<script type="text/javascript"> 
<?php 
while ($songsFunction = mysql_fetch_array($result3)) { 
    echo "function ".$songsFunction['songID']."(){"; 
    echo "document.getElementById('ogg').src='';"; 
    echo "document.getElementById('mp3').src='';"; 
    echo "document.getElementById('songName').innerHTML='';"; 
    echo "audio.load();"; 
    echo "playPause();"; 
    } 
?> 
</script> 

我有songID顯示在播放列表上了:

<?php while ($haha = mysql_fetch_array($result3)) { 
    echo '<ul> 
      <li> 
      <a href="#" onClick="'.$songFunction['songID'].'();">'.$songFunction['songName'].'</a> 
      <a href="'.$songFunction['mp3Link'].'"><img src="../images/download.png"></a> 
      </li> 
      </ul>'; 
    } 
?> 

播放列表正常循環,但是當我得到的功能工作,如果songID的匹配起來,播放列表消失。

這是正確的方式來循環JavaScript函數,同時通過帶變量的數據庫提取信息?

+1

我不認爲生成幾個JavaScript函數是你想要的。只需將您需要的參數傳遞給單個JavaScript函數即可。 – scunliffe

+1

如果'$ songFunction ['songID']'是一個數字,用非數字前綴輸出 - 函數名稱不能以數字開頭。 – pozs

+0

對不起,亂碼/無組織的代碼。目前只是試圖在我使所有的事情都有效/有組織之前得到它的工作。 – user1719526

回答

0

你沒有關閉你的JavaScript函數。

0

我不知道你想什麼來完成,但唯一的JavaScript我看到操縱DOM只是刪除內容...

echo "document.getElementById('ogg').src='';"; 
echo "document.getElementById('mp3').src='';"; 
echo "document.getElementById('songName').innerHTML='';"; 

因此任何內容曾經有過這些項目將被刪除。這是你的意圖嗎?或問題的根源?

+0

我知道他們正在擦除那裏有什麼。截至目前,我不需要他們有任何東西。我只是遇到了實際循環播放列表和功能的問題。 – user1719526

0

這絕對是不是的方式來做到這一點。

場景應該是:

  1. 用戶從播放列表中點擊歌曲。
  2. 點擊事件被觸發,發送一個ajax請求到php腳本。
  3. PHP腳本從數據庫中提取數據並返回格式爲json
  4. 的響應js代碼使用json響應並對其執行操作。
+0

只是好奇 - 爲什麼ajax需要?一個簡單的URL到文件名肯定是所有需要和已經提供的,不是嗎? – scunliffe

+1

^Ajax真的不需要這個。 – user1719526

+0

你應該從中獲得主要的東西,你應該分開js和PHP代碼。 – Tomer