2010-09-05 3 views
0

J'ai un champ défini et à l'intérieur j'ai un formulaire. ça ne marche pas . je veux dire . quand je vois les tags en utilisant firebug, les tags de formulaire ne seront pas là du tout ... comment est-ce que je m'en remets?Le format html ne fonctionne pas à l'intérieur des champs

voici comment le code va ... son code php ..

<div id="dialog-form_surg_couns" title=" Surgical Counselling"> 

<?php 
$surgCount = 0; 
foreach($this->surgery as $surgery) { 
$surgCount++; 
$newId = str_replace(' ','',$surgery->getSurgeryname()); 
?> 
    <div class='fieldreq1Pct'> 
     <div class='fieldItemLabel'> 
       <label for=''><?php echo $surgery->getSurgeryname() ?></label> 
     </div> 
     <div class='fieldItemValue'> 
       <input type='checkbox' class='surg_couns_tests' id="<?php echo $newId ?>" name='surg_couns_tests' value="<?php echo $surgery->getSurgeryname() ?>" <?php echo (($showValue && strstr($visitRecord->getSurgcounstests(),$surgery->getSurgeryname())) ? 'checked' : ""); ?> onClick="javascript:showBlock(this.id);"> 
     </div> 
    </div> 
<?php 
if(($surgCount % 3) == 0) 
{ 
?> 
       <div class='clear'></div> 
<?php 
} 
} 
?> 
       <div class='clear'></div> 
<hr/> 
<?php 
foreach($this->surgery as $surgery) { 
$newId = str_replace(' ','',$surgery->getSurgeryname()); 
$fieldCount = 0; 
?> 
<div id='<?php echo $newId ?>_block' style='display:none;' class='check_block'> 
<form method='POST' action ='' id ='<?php echo $newId ?>_form'> 
<table border='0' class='surg_table'> 
<?php 
foreach($this->surgeryTemplate as $surgerytemplate) { 
if($surgery->getSurgeryid() == $surgerytemplate->getSurgeryid()) 
{ 
$fieldCount++; 
$fieldName  = 'field'.$fieldCount; 
$fieldId  = $surgerytemplate->getFieldid(); 
if($surgerytemplate->getRequired() == 'Y') 
{ 
$required = 'required'; 
} 
else 
{ 
$required = ''; 
} 
if($surgerytemplate->getType() == 'AN') 
{ 
$validation = 'alpha'; 
} 
else 
{ 
$validation = ''; 
} 

?> 
<tr> 
<td> 
<?php echo $surgerytemplate->getFieldname(); ?> 
</td> 
<td> 
<?php 
if($surgerytemplate->getType() == 'B') 
{ 
echo '<input type=\'radio\' name=\''.$fieldName.'\' value=\'Yes\'>Yes'; 
echo '<input type=\'radio\' name=\''.$fieldName.'\' value=\'No\'>No'; 
} 
else 
{ 
echo '<input type=\'text\' name=\''.$fieldName.'\' id=\''.$fieldName.'\' class=\''.$required.' '.$validation.'\' onblur="checkValid(this.id)"><div id=\''.$fieldName.'error\'></div>'; 
} 
?> 
</td> 
</tr> 
<?php 
} 
} 
?> 
</table> 
<center><input type='button' name='submit' value='submit' onclick='javascript:submitSurgeryForm("<?php echo $newId ?>")'></center> 
</form> 
</div> 
<?php 
} 
?> 
</div> 
+3

Montrez-nous votre code! – adamse

+0

La façon dont vous utilisez les jeux de champs est incorrecte, car les jeux de champs sont destinés à être utilisés à l'intérieur du formulaire, pour le groupement logique des éléments de formulaire, et non l'inverse. –

+0

@FreekOne - J'ai changé mon code ... mais la forme de tage vient seulement pour la deuxième boucle. 1ère boucle l'étiquette de forme ne vient pas .. tout problème dans le code? – Hacker

Répondre

1

Vous ne pouvez pas avoir une étiquette form dans une autre forme. Le code HTML suivant est invalide:

<form> 
    <fieldset> 
    <form> 
     <input> 
    </form> 
    </fieldset> 
</form> 

Le navigateur silencieusement ignorer la seconde forme, et à la place interprétera votre page:

<form> 
    <fieldset> 
    <input> 
    </fieldset> 
</form> 
+0

après avoir lu le code donné plusieurs fois, je suis assez sûr qu'il ne sort pas de formulaires imbriqués. Le premier 'foreach' peut être ignoré, le second produit un formulaire pour chaque itération, et le troisième - imbriqué dans le second - affichera les éléments du formulaire. –

+0

@FreekOne: Oui, vous avez raison. Toutefois, le code d'exemple n'inclut pas le fieldset mentionné, donc je suppose que le fieldset - et le formulaire dans lequel il est - a été omis de l'exemple de code. – jmz

+0

Si vous suivez les commentaires sur la question initiale, j'ai déjà suggéré que cela ne fonctionne pas et le code que vous voyez maintenant est une version mise à jour de la première. –

Questions connexes