拆分选择输入以进行页面动态表单创建以及向表单发送值

时间:2013-04-21 06:05:08

标签: php javascript jquery forms

我需要将选择输入拆分为两部分,以便在同一页面上使用一个部分进行动态表单创建,并将第二部分发送到接收表单。

这就是我现在根据选择输入选择动态创建下面的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显示作为更具体的值,将发送到表单的接收页面。

1 个答案:

答案 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作为原始问题,但这将达到预期的目标。