2010-09-05 4 views
0

У меня есть набор полей и внутри него у меня есть форма. это не работает . я хочу сказать. когда я вижу теги, использующие firebug, теги формы вообще не будут там. Как я могу это преодолеть.html форма не работает внутри полей

это как код идет ... его 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

+0

То, как вы используете поля, неверно, потому что наборы полей предназначены для использования ВНУТРИ формы, для логической группировки элементов формы, а не наоборот. –

+0

@FreekOne - я изменил свой код ... но форма tage подходит только для второго цикла. 1-й цикл тега формы не подходит. Любая проблема в коде? – Hacker

ответ

1

Вы не можете иметь form тег внутри другой формы. Следующий HTML неверен:

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

браузер будет молча игнорировать вторую форму, и вместо этого будет интерпретировать страницу как:

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

после прочтения данного кода несколько раз, я уверен, что он не выводит вложенные формы. Первый «foreach» можно игнорировать, второй выводит форму для каждой итерации, а третья - вложенная во вторую - выводит элементы формы. –

+0

@FreekOne: Да, ты прав. Однако код примера не включает упомянутый набор полей, поэтому я предполагаю, что набор полей и форма, внутри которых он есть, были опущены из кода примера. – jmz

+0

Если вы следуете комментариям по первому вопросу, я уже сказал, что это не сработает, и код, который вы видите сейчас, является обновленной версией исходного. –