2010-09-05 67 views
0

我有一個字段集,裏面有一個表單。這是行不通的 。我的意思是說。當我看到使用螢火蟲的標籤時,窗體標籤將不會出現在所有的地方..如何讓你克服它。html表單在fieldsets中不起作用

這是代碼如何去......它的一個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

向我們展示你的代碼! – adamse 2010-09-05 15:59:18

+0

您使用字段集的方式是錯誤的,因爲字段集旨在用於表單內部,用於表單元素的邏輯分組,而不是其他方式。 – 2010-09-05 16:20:03

+0

@FreekOne - 我已經改變了我的代碼...但是窗體tage僅用於第二個循環。第一個循環的表單標籤不會來...代碼中的任何問題? – Hacker 2010-09-05 16:35:28

回答

1

你不能有另一種形式的內form標籤。下面的HTML是無效的:

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

瀏覽器會自動忽略第二種形式,而是將解釋您的網頁:

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

幾次閱讀給定的代碼後,我很確定它不輸出嵌套窗體。第一個'foreach'可以忽略,第二個輸出每個迭代的形式,第三個 - 嵌套在第二個 - 將輸出表單元素。 – 2010-09-05 17:35:01

+0

@FreekOne:是的,你說得對。但是,示例代碼不包含提到的字段集,所以我假設字段集以及它所在的表單在示例代碼中被省略了。 – jmz 2010-09-05 17:41:31

+0

如果您按照最初問題的評論,我已經建議這不起作用,您現在看到的代碼是最初版本的更新版本。 – 2010-09-05 17:47:24