【问题标题】:Get the value of a dropdown inside the view after select option is closed关闭选择选项后获取视图内下拉列表的值
【发布时间】:2021-01-02 21:33:57
【问题描述】:

我有一个弹出并显示一些变量的模式。显示这些变量后,它有一个带有几个选项的下拉菜单。我正在尝试获取它,以便他们在下拉列表中选择的值能够转换为标签,以便我可以在他们选择后在操作中使用它。在他们选择下拉菜单后,假设他们选择了 10x,我需要在他们选择后拉出 10 的值,用它来乘以我里面的$netincome 标签。这是我的代码:

<div class="modal-body">
      <?php echo form_open(base_url('admin/work/start_working'), 'class="form-container"'); ?>
      
       <div class="form-group has-feedback">
             <input type="text" name="basin" id="basin" value="<?= $netincome; ?> <?= $ress; ?>" class="form-control" placeholder="<?= $netincome; ?>" > <center>&</center> <input type="text" name="basin" id="basin" value="<?= $netincome2; ?>" class="form-control" placeholder="Cash: <?= $netincome2; ?>" >
        </div>
      <br>
     <div class="form-group has-feedback">
      <select id="times" name="times" class="browser-default custom-select custom-select-lg mb-3">
      <option value="1" selected>1x</option>
      <option value="2">2x</option>
      <option value="5">5x</option>
      <option value="10">10x</option>
      <option value="20">20x</option>
      <option value="40">40x</option>
      <option value="42">42x</option>
      </select>
    </div>
    <br>
    <?php
    $amt = WHERE I'M TRYING TO PULL THE OPTION VALUE ABOVE;
    ?>
    <?php 
      $finalamt = $netincome * $amt;
      ?>
    <div class="form-group has-feedback">
             <input type="text" name="netin" id="netin" value="<?= $finalamt; ?> <?= $ress; ?>" class="form-control" placeholder="<?= $finalamt; ?>" > <center>&</center> <input type="text" name="basin" id="basin" value="<?= $netincome2; ?>" class="form-control" placeholder="Cash: <?= $netincome2; ?>" >
        </div>
    </div>

下拉列表下方是 $amt 标签,在它下方是我将 $netincome * $amt 相乘的地方。我似乎无法捕捉到期权价值。我对 Javascript 不是很流利,所以我不确定这是否是一个更好的选择。

【问题讨论】:

  • 所以问题是:如何从select标签内的选定选项中获取值?模式弹出并在“确认”单击后消失?我猜对了吗?

标签: javascript php codeigniter modal-dialog dropdown


【解决方案1】:

如果您尝试使用 PHP 获取价值,那么您必须提交表单才能使用获取价值

$_POST['times'];

或者如果你想要它没有页面加载,那么你可以使用 Jquery

var times = $('#times').val();

您可以在 jquery 中将其复数并显示在某处,例如:

var total = times * 10;

在某个地方显示这个总数,比如在一个 id abc 的元素中:

$('#abc').html(total);

您的最终代码将是:

<div id="abc"></div>
<script>
$(document).ready(function(){
$('#times').change(function(){
var times = $('#times').val();
var total = times * 10;
$('#abc').html(total);
});
});
</script>

【讨论】:

  • 再说一次,我还是 JavaScript 新手,所以我将它们添加到模态脚本中,``` var times = $('#times').val(); var 总计 = 次 * val(); $('#finalamount').html(总计); ``` 现在我如何在 div 标签中调用这个?我知道时间连接到下拉列表中的时间,并提取值,但是我如何将它连接到表内的 div 并获得该值?如果选择十,则在里面放十,我猜这就是它拉的 val()。如何在表格下方 div 的文本框中显示该总数?
【解决方案2】:

为提交表单时的 select onchange 事件编写一个事件监听器

$(document).ready(function(){
$('#times').change(function(){
// Call submit() method on <form id='myform'>
$('#myform').submit();
});
});

然后在服务器端使用 post 方法 $_POST['times'] 获取日期

【讨论】:

    【解决方案3】:

    您的最终代码将是:

    <div id="abc"></div>
    <script>
    $(document).ready(function(){
    $('#times').change(function(){
    var times = $('#times').val();
    var total = times * 10;
    $('#abc').html(total);
    });
    });
    </script
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 2013-02-25
      • 1970-01-01
      相关资源
      最近更新 更多