在选择框中选择值 数组中的其他值将显示在输入字段中


select value in select box other value in array will appear in the input field

我在下面有一个数组数据:

<?php
  $names = array('Ireneo Crodua' => array('Australia', 'contact 3883 441', 'id_01'), 
                 'Almads Bangal' => array('India', 'contact 3883 811', 'id_02' ),
                 'Rechard Canonigo' => array('America', 'contact 3883 333', 'id_03'),
                 'Marjohn bebeloni' => array('China', 'contact 3883 444', 'id_04')
  );
?>

我有一个选择框来选择人员的姓名

<form action="post">
  <p><label>Select Name</label>
    <select>
      <?php 
        foreach($names as $name => $place){
          echo "<option>" . $name . "</option>";
        }
      ?>
    </select>
  </p>

  <p><label>Place</label><input name="place" value="" /></p>
  <p><label>Contact</label><input name="contact" value="" /></p>
  <p><label>ID Number</label><input name="id_number" value="" /></p>

</form> 

如果我选择例如Rechard Canonigo在我的选择框中,Rechard Canonigo的数组值将自动出现在输入字段中,这是否可能。

例:

美国将自动出现在input field => place中,contact 3883 333也将出现在input field => contact中,最后id_03将显示在id_number输入字段中

我不喜欢这个jquery代码:

$(function(){
  $('select').on('change',function(){
     $('input[name=place]').val($(this).val());
  });
});

我想要实现的工作中类似,但问题是它只在数组中给出一个结果

是的,很有可能,你已经让第一个字段工作了。对于第二个和第三个字段,您可以通过使用 json_encode() 将这些数组导入 javascript 中。

<script type="text/javascript">
var names = <?php echo json_encode($names); ?>; // put it inside
$(function(){
    $('select').on('change',function(){
        // on select change
        var selected_value = $(this).val();
        $('input[name=place]').val(selected_value);
        // since the selected value is a key just point it to the object and get its values
        $('input[name=contact]').val(names[selected_value][1]);
        $('input[name=id_number]').val(names[selected_value][2]);
    });
});
</script>

示例演示