0

我需要将选择输入分成两部分,以便将一部分用于在同一页面上创建动态表单,将第二部分发送到接收表单。

这就是我现在必须根据选择输入选择动态创建下面的 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上搜索,我发现这篇文章让我开始这样做:<option value="{type:'amount',segment_id:'<?php echo $segment_id; ?>'} >。我只需要知道如何在提交页面之前用 javascript 拆分这个对象。我需要使用选项输入中的相同值作为更具体的值动态显示隐藏的 div,该值将发送到表单的接收页面。

4

1 回答 1

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

于 2013-04-23T20:22:36.073 回答