5568 sujets

Sémantique web et HTML

Bonjour,

Est il possible d’empêcher un navigateur de fermer une balise ?


le code ci dessous renvoie à une action ou on affiche un tableau avec une sélection multiple de produit à supprimer ou non.

Ci dessous le code en gros.

<table border="0" width="100%" cellspacing="2" cellpadding="2">
  <tr>
<!-- body_text //-->
    <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
      <tr>
        <td width="100%"><table border="0" width="100%" cellspacing="3" cellpadding="0" class="adminTitle">
          <tr>
             <td width="40"><?php echo tep_image(DIR_WS_IMAGES . 'categories/manufacturers.gif', HEADING_TITLE, '40', '40'); ?></td>
             <td class="pageHeading"><?php echo '&nbsp;' . HEADING_TITLE; ?></td>
             <td align="right" class="pageHeading"><table border="0" cellspacing="0" cellpadding="0">
            <tr>
<?php
  if (empty($action)) {
?>
                  <td>
                    <?php echo '<a href="' . tep_href_link(FILENAME_MANUFACTURERS, 'page=' . $_GET['page'] . '&mID=' . $mInfo->manufacturers_id . '&action=new') . '">' . tep_image_button('button_insert_manufacturers.gif', IMAGE_INSERT) . '</a>'; ?>




// Début du formulaire



                    <form id="delete_all" <?php echo 'action="' . tep_href_link(FILENAME_MANUFACTURERS, 'page=' . $_GET['page'] . '&action=delete_all', 'NONSSL') . '"'; ?> method="post">
                    <a onclick="$('delete').attr('action', ''); $('form').submit();" class="button"><span><?php echo tep_image_button('button_delete_big.gif', IMAGE_DELETE); ?></span></a>&nbsp;








                  </td>
<?php
  } else if ( ($action == 'new') || ($action == 'edit') ) {
...
?>
                </tr>
              </table></td>
            </tr>
          </table></td>
        </tr>
....
<?php
// action = empty
  } else {
?>
      <tr>
        <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
          <tr>
            <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="5">
              <tr class="dataTableHeadingRow">
                <td width="1" style="text-align: center;"><input id="delete_all" type="checkbox" onclick="$('input[name*=\'selected\']').attr('checked', this.checked);" /></td>
                <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_MANUFACTURERS; ?></td>
                <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_STATUS; ?></td>				
                <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?>&nbsp;</td>
              </tr>
<?php
...
  while ($manufacturers = tep_db_fetch_array($manufacturers_query)) {
...
?>
              <tr>
                <td>
<?php 
      if ($manufacturers['selected']) { 
?>
                  <input id="delete_all" type="checkbox" name="selected[]" value="<?php echo $manufacturers['manufacturers_id']; ?>" checked="checked" />
<?php 
      } else { 
?>
                  <input id="delete_all" type="checkbox" name="selected[]" value="<?php echo $manufacturers['manufacturers_id']; ?>" />
<?php 
      } 
?>
                </td>
             </tr>
<?php
  } // end while
?>



</form> <!-- cette balise n'est pas prise en compte -->



           </table></td>
         </tr>
       </table></td>
     </tr>
</table></td>
  </tr>
</table>


Dans l'exemple ci dessous on voit que que le form n'est pas fermé dans les <td></td> mais cette balise est fermée plus loin dans le code

le code est encapsulé dans un tableau avec un entourage graphique pour respecter une charte

Hors, si on respecte les règles HTML, on devrait terminer le formulaire dans le td avec le </form>

c'est ce que fait le navigateur. Mais cela me pose d'énormes soucis car par la suite des fonctionnalités qui fonctionnaient hier, ne fonctionnent plus maintenant.

D'ou ma question y a t'il un moyen d'empêcher ça sinon comment résoudre ce problème si vous avez une idée

merci
Modifié par oitsuki (26 Oct 2012 - 21:46)