所以我有一个巨大的数据表,每一行都有自己的"编辑"按钮,可以打开一个模态窗口。在每个模式窗口中都有一个窗体和一个提交按钮。这样工作就好了。
现在是棘手的部分。
我使用bootstrap-modal添加了第二层,在第一层之上添加了第二层。在此模态中,更多输入和选择,相同表单的成员。数据填充得很好。如果我修改某些值,关闭第二个模态,然后再次打开它,则保留修改后的值。
问题是,如果我提交表单(按钮位于第一个模态窗口中),则第二个模态中的输入不会被发布......
我错过了什么?这不能做到吗?我是否应该尝试使用某种形式的匹配,因此当第二个模态关闭第一个模态中的一些隐藏输入时,会填充它们并发布它们?
代码(部分)如下所示:
<form action="submit_modal_projects.php" method="post" class="form-horizontal">
<fieldset> <!-- right column -->
<fieldset class="bordered_fieldset" style="margin-left:10px;">
<legend>Etape</legend>
<div class="control-group">
<div class="controls controls-row">
<label for="" class="span3">Lance</label>
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_obj']; ?>" name="site_compo_site_pf_obj">
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_est']; ?>" name="site_compo_site_pf_est">
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_reel']; ?>" name="site_compo_site_pf_reel">
<input type="checkbox">
<button class="demo btn btn-primary btn-mini" data-toggle="modal" href="#ajax-modal-<?php echo $row['id']; ?>">Detalii</button>
<!-- mini modal -->
<div id="ajax-modal-<?php echo $row['id']; ?>" class="modal hide fade" tabindex="-1" style="display: none; margin-top: -128.5px;" data-width="360">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Detal<?php echo $row_j['site_compo_site_pf_obj_initial']; ?></h3>
</div>
<div class="modal-body">
<h5>Site compo</h5>
<fieldset class="bordered_fieldset">
<legend>Fase</legend>
<div class="control-group">
<div class="controls controls-row">
<label class="span1 text-center"></label>
<label class="span1 text-center">Obj</label>
<label class="span1 text-center">Est</label>
<label class="span1 text-center">Reel</label>
</div>
<div class="controls controls-row">
<label class="span1">Inițial:</label>
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_obj_initial']; ?>" name="site_compo_site_pf_obj_initial" disabled>
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_est_initial']; ?>" name="site_compo_site_pf_est_initial" disabled>
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_reel_initial']; ?>" name="site_compo_site_pf_reel_initial" disabled>
</div>
<div class="controls controls-row">
<label class="span1">Propus:</label>
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_obj']; ?>" id="site_compo_site_pf_obj_propus">
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_est']; ?>" id="site_compo_site_pf_est_propus">
<input type="text" class="span1" value="<?php echo $row_j['site_compo_site_pf_reel']; ?>" id="site_compo_site_pf_reel_propus">
</div>
<div class="controls controls-row">
<label for="" class="span1">Motiv:</label>
<select class="span3" name="site_compo_site_pf_motiv" id="site_compo_site_pf_motiv">
<option value="<?php echo $row_j['site_compo_site_pf_motiv']; ?>"><?php echo $row_j['site_compo_site_pf_motiv']; ?></option>
<option value="opt"></option>
<option value="Modif">Modif</option>
<option value="Retard">Retard </option>
<option value="Lead Time">Lead Time</option>
<option value="Tech">Tech</option>
<option value="Nope">PNope</option>
<option value="Capac">Capac</option>
<option value="Prot">Prot</option>
<option value="Acc2">Acc2</option>
<option value="Acc">Acc</option>
<option value="Supp">Supp</option>
<option value="Other">Other</option>
</select>
</div>
<div class="controls controls-row">
<label for="" class="span1">Detalii:</label>
<input type="text" class="span3" name="lancement_projet_site_compo_site_pf_detalii" id="lancement_projet_site_compo_site_pf_detalii" value="<?php echo $row_j['lancement_projet_site_compo_site_pf_detalii']; ?>">
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<button class="btn update">Update</button>
<button type="button" data-dismiss="modal" class="btn">Close</button>
<button type="button" class="btn btn-primary">Ok</button>
</div>
</div>
</div>
</div>
</fieldset>
</fieldset><!-- end right column -->
</form>
第二个模态窗口中的字段不在第一个模态<form>
元素内。我认为将模态放在模态中会破坏设计,因此解决方案是在提交之前使用 javascript 将其放入其中。
您的网络工具显示要发布的是什么?例如,您可以通过检查Chrome中的开发人员工具来查看点击提交按钮时提交的内容。这适用于 FF 等。
如果您来自第二个模态的值未通过表单提交提交,则意味着它们不会传递到第一个模态。在这种情况下,您已经自己回答了这个问题:在隐藏字段中将它们从 modal2 传递到 modal1。您可以使用javascript直接提交或通过在提交事件上挂起函数来执行此操作。
如果您的值已发布,但您在服务器端看不到它们,请确保未在某处过滤它们。