2010-11-25 6 views
1

J'ai actuellement une table d'environ 30 lignes et je voudrais faire <td> cliquable dans chaque cas:la fabrication de cellules de table cliquables

<tr height="100px" align="center">   
     <?php do { ?> 
     <td style="background-color: <?php echo $row_dd1['colour']; ?>;"> 
     <form action="pay.php?id=<?php echo $row_dd1['dNo']; ?>&user=<?php echo $username; ?>" method="post"> 
     <input type="hidden" id="<?php echo $row_dd1['dNo']; ?>"><input type="hidden" value="<?php echo $username; ?>"> 
      <button type="submit" class="link" id="t<?php echo $row_dd1['dNo']; ?>"><span><?php echo $row_dd1['dNo']; ?></span></button></form> 
     </td> 
     <?php } while ($row_dd1 = mysql_fetch_assoc($dd1)); ?> 
    </tr> 

Comment faites-vous la table cliquable cellulaire? Je voudrais qu'il ait le même lien que l'action de la forme que je l'ai utilisé qui est:

<form action="pay.php?id=<?php echo $row_dd1['dNo']; ?>&user=<?php echo $username; ?>" method="post"> 

Répondre

5

Ceci est un exemple parfait de l'endroit où utiliser .delegate(), comme ceci:

$("#myTableID").delegate("td", "click", function() { 
    $(this).find("form").submit(); 
}); 

.delegate()un attache gestionnaire au <table>, plutôt que n gestionnaires, une par cellule. Si vous voulez juste naviguer vers l'URL, cela ressemblerait à:

$("#myTableID").delegate("td", "click", function() { 
    window.location.href = $(this).find("form").attr("action"); 
}); 
+0

encore mieux. +1 – prodigitalson

+0

Nice one! Je n'y ai pas pensé. +1! – jwueller

1

Qu'en est-jQuery de click-event?

$('td').click(function() { 
    $('form', this).submit(); 
    return false; 
}); 

Ceci soumet le formulaire à l'intérieur ducliqué.

1

Pour soumettre effectivement la forme:

$('td > form').each(function(i,e){ 
    var form = $(this); 
    var cell = form.parent(); 
    if(cell.is('td')){ 
    cell.click(function(){ 
     form.submit(); 
    }); 
    } 
}); 

Si vous jsut voulez suivre le lien au lieu, jsut modifier la partie form.submit() changer window.location.href avec form.attr('action').

Questions connexes