我需要将选择输入拆分为两部分,以便在同一页面上使用一个部分进行动态表单创建,并将第二部分发送到接收表单。
这就是我现在根据选择输入选择动态创建下面的div:
$a = 0;
while ($row = mysql_fetch_array($result)) {
$people_array[$a] = array(
"ID" => $row['ID'],
"event" => $row['name'],
"time_needed" => $row['time_needed'],
);
$a = $a + 1;
}
$count = count($people_array);
<form>
<?php for($p=0,$p<$count,p++){
$segment_id = $people_array[$p][ID]; ?>
<select name="name_segment" id="name_segment">
<option value="female" >
<?php echo $people_array[$p][name]; ?>
</option>
<option value="male" >
<?php echo $people_array[$p][name]; ?>
</option>
</select>
<?php } ?>
</form>
<div id="name_segment_female" class="name_segment_input" style="display:none;">
Allow at least 30 extra minutes for bathroom usage.
</div>
<div id="name_segment_male" class="name_segment_input" style="display:none;">
No extra bathroom time needed.
</div>
和javascript
<script>
$("#name_segment").change(function() {
var name_segment = $(this).val();
$(".name_segment_input").hide();
$("#name_segment_" + name_segment).show("slow");
});
</script>
在stackoverflow上搜索这里,我发现this post让我开始使用这个:<option value="{type:'amount',segment_id:'<?php echo $segment_id; ?>'} >
。我只需要知道如何在提交页面之前用javascript分割这个对象。我需要使用选项输入中的相同值动态隐藏div显示作为更具体的值,将发送到表单的接收页面。
答案 0 :(得分:0)
首先,为简单起见,我将选项值全部改为相同的长度 例如,我让“男性”保持不变,但将女性改为“fmle” 然后我改变了javascript:
$("#name_segment").change(function() {
var name_segment = $(this).val();
var local_segment = name_segment.slice(0,4);
$(".name_segment_input").hide();
$("#name_segment_" + local_segment).show("slow");
});
只解析四个字母部分,并使用与原始设计相似的部分。然后我将选项值更改为<option value="fmle_<?php echo $segment_id; ?>" >
。提交表单后,segment_id
将在服务器端解析。
如果完全有必要,我们可以做更多的工作,只发送segment_id
作为原始问题,但这将达到预期的目标。