2010-09-24 41 views
0

我使用PHP從數據庫創建表,這意味着表的大小和值會有所不同。從連續的第一個單元格獲取值以使用Javascript提交

創建表:

<table>  
      <thead> 
       <tr> 
        <th>Ticket</th> 
        <th>Empresa</th> 
        <th>Requerente</th> 
        <th>Motivo</th> 
        <th>Data</th> 
        <th>Hora</th> 
       </tr> 
      </thead> 

     <tbody> 
      <form name="goTicket" action="resolver.php" method="POST" >   
<?php 
    $sql = "QUERY"; 
    $result = mysql_query($sql); 
    while ($row = mysql_fetch_array($result)) { 
     echo "<tr onmouseover=\"this.style.background='#EFF5FB';this.style.cursor='pointer'\" 
     onmouseout=\"this.style.background='white';\" onclick=\"javascript: submitform()\">"; 
     echo "<td>$row[Ticket]</td>"; 
     echo "<input type='hidden' name='_ticket' value='$row[Ticket]' />"; 
     echo "<td>$row[Empresa]</td>"; 
     echo "<td>$row[Requerente]</td>"; 
     echo "<td>$row[Motivo]</td>"; 
     echo "<td>$row[Data]</td>"; 
     echo "<td>$row[Hora]</td>"; 
     echo "</tr>"; 
    } 
    echo "</form>"; 
    echo "<tr><td colspan='6' style='text-align: center;'><form action='adminmenu.php' ><br /><input type='submit' name='woot' value='Main Menu' /></form></td></tr>"; 
    echo "<tbody>"; 
    echo "</table>"; 
?> 

用於提交Javacript功能是這一個:

<script type="text/javascript"> 
     function submitform() 
     { 
      document.forms["goTicket"].submit();   
     } 
</script> 

現在,每當我點擊它採取適當的頁面「resolver.php一排」但始終發送最近一次執行的數據。

我需要第一個單元格或隱藏的輸入標記的值,它包含我需要的內容,從單擊的行開始。

謝謝。

回答

2

全部建議

<script type="text/javascript"> 
function submitform(ticket) { 
    document.goTicket.elements["_ticket"].value=ticket; 
    document.goTicket.submit(); 
} 
</script> 
<table>  
     <thead> 
      <tr> 
       <th>Ticket</th> 
       <th>Empresa</th> 
       <th>Requerente</th> 
       <th>Motivo</th> 
       <th>Data</th> 
       <th>Hora</th> 
      </tr> 
     </thead> 

    <tbody> 
<form name="goTicket" action="resolver.php" method="POST" > 
<input type="hidden" name="_ticket" value="" /> 

<?php 
    $sql = "QUERY"; 
    $result = mysql_query($sql); 
    while ($row = mysql_fetch_array($result)) { 
?>  

    <tr onmouseover="this.style.background='#EFF5FB';this.style.cursor='pointer'" 
    onmouseout="this.style.background='white';" 
    onclick="submitform('<?php echo $row[Ticket]; ?>')"> 
    <td><?php echo $row[Ticket];  ?></td> 
    <td><?php echo $row[Empresa]; ?></td> 
    <td><?php echo $row[Requerente]; ?></td> 
    <td><?php echo $row[Motivo];  ?></td> 
    <td><?php echo $row[Data];  ?></td> 
    <td><?php echo $row[Hora];  ?></td> 
    </tr> 
<?php } ?> 

</form><!-- not really nice --> 
    <tr><td colspan="6" style="text-align: center;"><form action="adminmenu.php" > 
    <br /><input type="submit" name="woot" value="Main Menu" /></form></td></tr> 
    </tbody> 
    </table> 
+0

是的,這是解決方案,但他必須從循環取出輸入:D – jatt 2010-09-24 11:45:10

+0

謝謝。正是我需要的。 – elvispt 2010-09-24 12:02:40

+0

不客氣 – mplungjan 2010-09-24 18:37:53

0

如果我看到好......很多的,當然它返回一個值隱藏輸入名稱相同......你想有什麼用......呦集的形式.. 你必須在循環中更改名稱,然後調用輸入的確切名稱

1

你的問題是,你只是提交表單而沒有任何引用點擊。所有隱藏的輸入都有相同的名稱,所以表單只發送最後一個。

嘗試以下操作:

echo "<tr onmouseover=\"this.style.background='#EFF5FB';this.style.cursor='pointer'\" onmouseout=\"this.style.background='white';\" onclick=\"javascript: submitform('$row[Ticket]')\">"; 

// delete this from while: 
// echo "<input type='hidden' name='_ticket' value='$row[Ticket]'/>"; 
// and instead add before </form> with value="" 

然後改變你的JavaScript提交之前,更改值:

function submitform(val) { 
    document.forms["goTicket"].elements["_ticket"].value = val; 
    document.forms["goTicket"].submit();   
} 

榮譽給mplungjan也得到了這個,因爲我打字!

相關問題