javascript - 通过 JS 获取 Select 选项值并设置数组索引

标签 javascript jquery arrays select laravel

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

它看起来像:

{{ 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 方法?

最佳答案

如果你想在 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

关于javascript - 通过 JS 获取 Select 选项值并设置数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24708688/

相关文章:

javascript - 在nodejs中过滤JSON数据(包含对象数组)

javascript - 将 future 几天添加到 Javascript(周日除外)

Javascript - 数组长度包括 0 索引,即使为空

javascript - 如何计算点击次数,然后使用该数字发送 ajax 请求?

arrays - 添加哈希数组并按哈希值排序

javascript - 将变量追加到数组而不更改它

javascript - 将输出 graphql schema 变量写入 .js 文件

javascript - 防止内容可编辑 div 中脚本注入(inject)的最佳方法

javascript - 如何简洁地创建 JavaScript 数组数组,每个数组具有不同的长度(每行都有不同的指定长度)?

jquery - Fancybox 画廊导航不起作用