单击select的选项时,将数组行回显到textareas

时间:2016-05-09 04:22:00

标签: javascript php jquery html

我正在检索一个填充了数据库中数据的数组。 我想构建一个充满所有名称的下拉列表,当点击一个名称时,我想将值回显到我在表单中的某个textarea中。 像这样:

array 
  0 => 
    array 
      'id' 
      'name'
      'desc' 
      'date'
  1 => 
    array 
      'id'
      'name'
      'desc' 
      'date'

这将是我的代码:

<html>
<head>

</head>
<body>
    <form method="post">
       <select>
          <?php some foreach that fills the dropdown ?>
       </select>

    <input type="text" id="nombre" name="name">
    <input type="text" id="dato" name="date">        
    <textarea id="desc" name="desc"><?php echo ...></textarea>


    <input class="cbp-mc-submit" type="submit" value="publish" />

    </form>

       <script src="js/jquery.js"></script>


       <script src="js/bootstrap.min.js"></script>

    </body>
</html>

2 个答案:

答案 0 :(得分:1)

您可以将输出传递给json_encode()并使用下面的代码块来接收它。

$("#selectID").on('change', function() {
  var sid = $('select[name=select]').val();
  $.ajax({
    url: "/get/data",
    data: {sid:sid},
    type: "POST",
    dataType : "json",
    success: function(xhr){
      $('#desc').val(xhr);
    });
  }
 });   
}); 

答案 1 :(得分:1)

听起来你可以通过PHP填充下拉列表。以下是如何获取所选选项的值(或文本)并将其放入textarea:

$('#selID').change(function(){

  $('#taID').val( this.value );
  //or
  //$('#taID').val( $(this).find(':selected').text() );

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="selID">
  <option value="">Choose One</option>
  <option value="audi">Audi Automobile</option>
  <option value="burger">Deluxe Hamburger</option>
  <option value="bunnie">Peter Rabbit</option>
</select>
<br>
<textarea id="taID" rows="5" cols="20"></textarea>

注意:

this指的是触发javascript的元素 - 在这种情况下,<select>控件的更改事件触发了js。

在纯javascript中,this.value返回元素的值。但是,如果您需要运行更多jQuery操作(例如.find().text()),那么您需要返回一个jQuery对象来进行操作。在这种情况下,请使用$(this)

由于this.value的输入速度比$(this).val()快,所以当我不需要创建jQuery对象时,我使用了纯js方法。当我只需要获取元素的ID时,我经常使用相同的快捷方式,例如:

var myID = this.id;