您好我有复选框并在表格中提交按钮。一切都运行良好。我可以在提交按钮后选中/取消选中复选框事件。唯一的问题是我的foreach循环执行多次,我得到多个表执行复选框与每个选中的选项。我正在做的一个小错误。 这是我的代码:
$html = '<table width="538" cellspacing="0" cellpadding="0" border="0">
<tr>
<td>
<div>'.CreateRegister($page['register-fahrzeuge']).'</div>
'.CreateMessage().'
<div class="cont-liste-verlauf register">';
if($row = mysql_fetch_assoc($result))
{
$val= unserialize($row['configuration']);
$html .= '<table id="FAHRZEUGE" >
<tr>
<td>';
foreach($val as $config){
$html .= ' <input type="checkbox" name="Anzahl_Fahrzeuge_ohne_Bilder" id="Anzahl_Fahrzeuge_ohne_Bilder" '.($config=='Anzahl_Fahrzeuge_ohne_Bilder' ? 'checked="checked"' : '').' />
<label for="Anzahl_Fahrzeuge_ohne_Bilder">Anzahl_Fahrzeuge_ohne_Bilder</label><br>
<input type="checkbox" name="Fahrzeuge_ohne_Preis" id="Fahrzeuge_ohne_Preis" value="Fahrzeuge_ohne_Preis" '.($config=='Fahrzeuge_ohne_Preis' ? 'checked="checked"' : '') .'/>
<label for="Fahrzeuge_ohne_Preis">Fahrzeuge_ohne_Preis</label><br>
<input type="checkbox" name="Fahrzeuge_mit_Fehlern" id="Fahrzeuge_mit_Fehlern" value="Fahrzeuge_mit_Fehlern" '.($config=='Fahrzeuge_mit_Fehlern' ? 'checked="checked"' : '') .' />
<label for="Fahrzeuge_mit_Fehlern">Fahrzeuge_mit_Fehlern</label><br>
<input type="checkbox" name="Herausforderungen" id="Herausforderungen" value="Herausforderungen" '.($config=='Herausforderungen' ? 'checked="checked"' : '') .' />
<label for="Herausforderungen">Herausforderungen</label><br><br>';
}
$html .= '</td>
</tr>
</table>';
}
$html .= ' '.CreateButton($page['button']).'
</div>
</td>
</tr>
</table>';
答案 0 :(得分:0)
首先,如果必须更改视图后会出现问题,因为您必须进行复制和粘贴,否则您可能会犯一些错误。
尝试更改为代码,仅使用一个html输入复选框,如果值在数组中,则添加选中的值
EX
<?php
some code php....
?>
<input type="checkbox" name="Anzahl_Fahrzeuge_ohne_Bilder" id="Anzahl_Fahrzeuge_ohne_Bilder"
<?php if($config == "Anzahl_Fahrzeuge_ohne_Bilder") echo "checked"; ?> />
<label for="Anzahl_Fahrzeuge_ohne_Bilder">Anzahl_Fahrzeuge_ohne_Bilder</label><br>
<?php
other code php...
你的另一个问题可能是因为你的sql中有多个结果,请看你的sql请求并修改为只有一个结果(使用“where”带有一些独特的条件或“limit 0,1”)
另一个问题是我没有承担你的代码,因为你有if和else每个地方和每个值你将拥有一个选中的输入的所有复选框,而其他人一遍又一遍地取消选中
答案 1 :(得分:0)
我认为你有$ val数组,其元素用于检查值。
像$val = array('Fahrzeuge_ohne_Preis','Herausforderungen');
之类的东西
并且您希望打印表单一次,并检查这两个。
如果我的猜测是正确的,那么你必须完全重做你的算法。
$html .= ' <input type="checkbox" name="Anzahl_Fahrzeuge_ohne_Bilder" id="Anzahl_Fahrzeuge_ohne_Bilder" '.(in_array('Anzahl_Fahrzeuge_ohne_Bilder',$val) ? 'checked="checked"' : '').' />
<label for="Anzahl_Fahrzeuge_ohne_Bilder">Anzahl_Fahrzeuge_ohne_Bilder</label><br>
<input type="checkbox" name="Fahrzeuge_ohne_Preis" id="Fahrzeuge_ohne_Preis" value="Fahrzeuge_ohne_Preis" '.(in_array('Fahrzeuge_ohne_Preis',$val) ? 'checked="checked"' : '') .'/>
<label for="Fahrzeuge_ohne_Preis">Fahrzeuge_ohne_Preis</label><br>
<input type="checkbox" name="Fahrzeuge_mit_Fehlern" id="Fahrzeuge_mit_Fehlern" value="Fahrzeuge_mit_Fehlern" '.(in_array('Fahrzeuge_mit_Fehlern',$val) ? 'checked="checked"' : '') .' />
<label for="Fahrzeuge_mit_Fehlern">Fahrzeuge_mit_Fehlern</label><br>
<input type="checkbox" name="Herausforderungen" id="Herausforderungen" value="Herausforderungen" '.(in_array('Herausforderungen',$val) ? 'checked="checked"' : '') .' />
<label for="Herausforderungen">Herausforderungen</label><br><br>';
删除循环。