通过JS&获取选择选项值设置数组索引

时间:2014-07-12 01:19:18

标签: javascript jquery arrays select laravel

我有一个select元素,我需要检索所选选项的值,然后将数组的索引设置为该值。我需要在页面加载和每次更新select时发生这种情况。

它看起来像:

{{ Form::select('marketplace_id', $donation_options, '', array('data-smart-select', 'required', 'id' => 'marketplace_id')) }}

<span id="market_hint" class="help-block">{{ $marketplaces[0]['example'] }}</span>

选择ID为 marketplace_id

数组是$ marketplaces,它是一个多维数组,第二个值始终是['example'],但第一个值是select的值,它总是一个数字,如0,1,2,3等

通过当前的javascript可以检索select的值:

 $( "#marketplace_id" ).val();

但我不知道如何继续更新market_hint span 标记内的数组。有一个简单的jQuery方法吗?

1 个答案:

答案 0 :(得分:1)

如果你想在php呈现页面时将整个数组放入javascript的路径

?>
<script>
$(function(){
   var myData = <?php echo json_encode( $marketplaces ); ?>
   $("#marketplace_id").change(function(){
      var value = $(this).val();
      $("#market_hint").html(myData[value]["example"]);
   });
   //do a call here to do an initial setting of the span
   $("#marketplace_id").change();
});
</script>

否则你将不得不对一个给你数据的脚本做一个ajax请求

$(function(){
   $("#marketplace_id").change(function(){
      var value = $(this).val();
      $.get("someScript.php?theIndex="+value)
      .done(function(response){
          $("#market_hint").innerHTML = response;
      });
   });
});

someScript.php

<?php
$index = isset($_GET["theIndex"]) ? intval($_GET["theIndex"]) : 0;

//do some processing to get the needed data
//...

echo $data;
die;

当然要定制它以适应你的laravel框架,只使用普通的PHP,因为我不过分知道laravel