2017-10-13 152 views
-1

我想實現的是我們的表顯示音頻的持續時間。但它只是更新第一行的數據。在php表中的JavaScript音頻持續時間顯示問題

是我迄今所做的是 - 從MySQL DATABSE表 首秀數據 - 列表項從該表

UserID 
Name 
Path 
IsDir 
edit 
Duration  

這些都是在我的表的表列,每一列顯示右數據但持續時間列在第1行僅更新現在

Here is the image of current table

<tr>代碼

 <tbody> 
<?php 
$count=1; 
$sel_query="Select * from table_name where isdir=0 ORDER BY id desc;"; 
$result = mysqli_query($conn,$sel_query); 
while($row = mysqli_fetch_assoc($result)) { ?> 
<tr><td align="center"><?php echo $count; ?></td> 
<td align="center"><?php echo $row["name"]; ?></td> 
<td align="center"><?php echo str_replace(' ', '%20', ($row["path"])); ?></td> 
<td align="center"><?php echo $row["isdir"]; ?></td> 
<td align="center"> 

<audio id="<?php echo $row["id"]; ?>" controls> 
    <source src=../..<?php echo str_replace(' ', '%20', ($row["path"])); ?> type="audio/mpeg"> 
</audio> 
</td> 

<td align="center"> 
<body onload="myFunction<?php echo $row["id"]; ?>();"> 
<audio id="<?php echo $row["id"]; ?>" controls> 
    <source src=../..<?php echo str_replace(' ', '%20', ($row["path"])); ?> type="audio/mpeg"> 
</audio> 
<p id="<?php echo $row["name"]; ?>"></p> 

<script> 
function myFunction<?php echo $row["id"]; ?>() { 
    var x<?php echo $row["id"]; ?> = document.getElementById("<?php echo $row["id"]; ?>").duration; 
    document.getElementById("<?php echo $row["name"]; ?>").innerHTML = x<?php echo $row["id"]; ?>; 
} 
</script> 
</body> 

</td> 
<td><a href="newadd.php?source=<?php echo $row["path"]; ?>&title=<?php echo $row["name"]; ?>">Edit</a> 
</td> 
<td align="center"> 
<a href="delete.php?id=<?php echo $row["id"]; ?>">Delete</a> 
</td> 
</tr> 
<?php $count++; } ?> 
</tbody> 
+0

這是每行相同的ID _demo_ 。你需要使它獨一無二。 – TGrif

+0

我已更新我的代碼,請檢查 – rinpa

+0

您不能只在表格單元格內輸出額外的'body'元素,並希望以這種方式獲取多個加載事件...因此,您需要做的第一件事是停止創建可笑的無效HTML。在你管理第一步之前,嘗試使用JavaScript處理整個事情並沒有多大意義。 – CBroe

回答

0

未經測試,但這樣的事情可能做的伎倆:

<?php while ($row = mysqli_fetch_array($nquery)) { ?> 
    <tr> 
    <!-- ... --> 
    <td><a id="link<?php echo $row['id'] ?>" 
      href="newadd.php?source=<?php echo $row["path"]; ?>&title=<?php echo $row["name"]; ?>&duration=">Edit</a> 
    </td> 
    <td> 
     <audio id="myAudio<?php echo $row['id'] ?>" 
      onloadedmetadata="myFunction(<?php echo $row['id'] ?>);" 
      controls> 
     <source src=../..<?php echo str_replace(' ', '%20', ($row["path"])); ?> type="audio/mpeg"> 
     </audio> 
    </td> 
    <td> 
     <p id="demo<?php echo $row['id'] ?>"></p> 
    </td> 
    </tr> 
<?php } ?> 

    <script> 
    function myFunction(id) { 
     var x = document.getElementById("myAudio" + id).duration; 
     document.getElementById("demo" + id).innerHTML = x; 
     var a = document.getElementById("link" + id); 
     a.href += x; 
    } 
    </script> 
+0

謝謝,它適用於我,但我想知道如何將持續時間值傳遞到下一頁當我點擊'編輯'現在我能夠通過'id'和'title'。 – rinpa

+0

'​​&title=&duration=?">Edit '就像這樣,在'?'的地方,我會得到那段特定音頻的持續時間。 – rinpa

+0

答覆已更新。 (https://stackoverflow.com/q/4689344/5156280) – TGrif

0

您沒有將行ID傳遞給該函數。它在調用函數時以及聲明參數時都在括號外。

所以不是:

onload="myFunction<?php echo $row["id"]; ?>();" 
function myFunction<?php echo $row["id"]; ?>() 

務必:

onload="myFunction(<?php echo $row["id"]; ?>);" 
function myFunction(<?php echo $row["id"]; ?>) 
相關問題