我有两个选择框,一个选择框是多选选项,还有一个添加更多按钮来添加具有相同选择框的多行,值以数组格式传递,我想打印每一行多选选项。
------------------------------------------------------------------
Select1 | Select2 | Textbox
------------------------------------------------------------------
Option1 Option1
Option2 Option2
Option3 Option3
Option4 Option4
我在第一个选择框中选择第一个选项,在第二个选择框中选择多个选项选择(Option1 和 Option2),在第二行中我在第一个选择框和第二个选择框中选择第二个选项多个选项选择(Option3 和 Option4)。 我点击提交按钮我想打印
Option1 Option1
Option1 Option2
Option2 Option3
Option2 Option4
但现在它打印(从多选框中获取所有数据)
Option1 Option1
Option1 Option2
Option1 Option3
Option1 Option4
Option2 Option1
Option2 Option2
Option2 Option3
Option2 Option4
这是我的代码:
<div id="lobrows">
<div class="form-group">
<div class="col-sm-4"><label>Reson</label>
<select class="form-control selectpicker" data-live-search="true" name="reson[]" required="required">
<option>--Select--</option>
<option value="1">List 1</option>
<option value="2">List 2</option>
<option value="3">List 3</option>
<option value="4">List 4</option>
</select>
</div>
<div class="col-sm-4"><label>Service </label>
<select class="form-control selectpicker" data-live-search="true" name="service[]" id="service" multiple="multiple">
<option>--Select--</option>
<option value="1">List 1</option>
<option value="2">List 2</option>
<option value="3">List 3</option>
<option value="4">List 4</option>
</select>
</div>
<div class="col-sm-4"><label>Name </label>
<input type="text" class="form-control" name="name[]" placeholder="Name" />
</div>
</div>
</div>
<a href="#" class="pull-right" id="add"><i class="fa fa-plus"></i> add</a>
<script type="text/javascript">
$(document).ready(function() {
$('#add').click(function(e) {
e.preventDefault();
var i=$('.mrbtm').length+1;
$('#lobrows').append('<div class="mrbtm"><div class="form-group"><div class="col-sm-4"><label>Reson </label><select class="form-control selectpicker" data-live-search="true" name="reson[]"><option>--Select--</option><option value="1">List 1</option>
<option value="2">List 2</option>
<option value="3">List 3</option>
<option value="4">List 4</option></select></div><div class="col-sm-4"><label>Service </label><select class="form-control selectpicker" data-live-search="true" name="service[]" id="service'+i+'" multiple="multiple"><option>--Select--</option><option value="1">List 1</option><option value="2">List 2</option><option value="3">List 3</option><option value="4">List 4</option></select></div><div class="col-sm-4"><label>Name </label><input type="text" class="form-control" name="name[]" placeholder="Name" required="required" /></div></div><a href="#" class="pull-right remove"><i class="fa fa-minus"></i> Remove</a><br /></div>');
$('.selectpicker').selectpicker();
$('.selectpicker').selectpicker('refresh');
});
$(document).on('click', '.remove', function(e) {
e.preventDefault();
$(this).parent('div').remove();
i--;
});
});
</script>
这是我的 PHP 代码:
<?php
foreach ($reson as $id => $value) {
$reson = ($reson[$id]);
$namep = ($name[$id]);
foreach ($service as $ii => $valu) {
$r_service = ($service[$ii]);
echo "Option".$reson."----"."Option".$r_service ."<br>";
}
}
?>
最佳答案
首先:重新分配作为 foreach 源的 var 是不明智的
$reson = ($reson[$id]);
其次,我在发布的代码中的任何地方都看不到您的表单。我建议您打印 $_REQUEST[] 中的任何内容(按您的表单类型发布/获取),然后看看您会得到什么。 恐怕,您会看到来自多选输入的所有使用值。 也就是说,因为您命名所有选择(用 js 生成)相同的名称。 您应该唯一地标识选择,这样您就可以知道哪些是哪些。
现在您将拥有多个具有相同名称的选择输入。 在生成新输入时,您可以像对 id 属性那样应用一些东西。
然后在 php 中,你可以这样做:
$i = 1;
while(true){
if(!isset($_POST['reson'.$i])){
break;
}
$selectedOptions = $_POST['reson'.$i];
//your magic
$i++;
}
请注意,当您在选择输入名称的“id”之间存在间隙时,此代码将无效。 (有人删除了选择输入)
希望这对您有所帮助:)
关于php - 多选选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41801584/
这是在Ruby中设置默认值的常用方法:classQuietByDefaultdefinitialize(opts={})@verbose=opts[:verbose]endend这是一个容易落入的陷阱:classVerboseNoMatterWhatdefinitialize(opts={})@verbose=opts[:verbose]||trueendend正确的做法是:classVerboseByDefaultdefinitialize(opts={})@verbose=opts.include?(:verbose)?opts[:verbose]:trueendend编写Verb
我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co
我正在使用Rails3.2.3和Ruby1.9.3p0。我发现我经常需要确定某个字符串是否出现在选项列表中。看来我可以使用Ruby数组.includemethod:或正则表达式equals-tildematchshorthand用竖线分隔选项:就性能而言,一个比另一个好吗?还有更好的方法吗? 最佳答案 总结:Array#include?包含String元素,在接受和拒绝输入时均胜出,对于您的示例只有三个可接受的值。对于要检查的更大的集合,看起来Set#include?和String元素可能会获胜。如何测试我们应该根据经验对此进行测试
我们想使用Rubocop来验证我们的ruby在语法上是否正确并遵循基本代码指南。除此之外我们有这个规则:我们使用制表符缩进以允许任何人决定他们希望如何呈现它们(将它们显示为2或4个空格)问题是rubocop似乎设计为完全拒绝缩进标签。我们怎样才能超越所有这些规则成为太空合规者?编辑:我正在考虑覆盖这个模块https://github.com/bbatsov/rubocop/blob/master/lib/rubocop/source_parser.rb将我文件中的所有制表符替换为2个空格,以创建gem的幻觉... 最佳答案 添加
我正在尝试在Ruby中创建一个菜单,以便根据用户输入的内容,取决于调用的类。然后在这种情况下它将返回到“Main”或类“Options”。我希望有人能帮助我。这是我的代码。modulePhysicsG=21C=20000Pi=3.14D=100endclassOptionsputs"Pleaseselect1forAccelerationand2forEnergy."option=gets()ifoption==1thenputs"AccelCalc"#ThisisthebitthatneedstodirecttheusertotheclassAccelCalcelseputs"Ene
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
使用RubyonRails,我使用给定的增量(例如每30分钟)用时间填充“选择”。目前我正在YAML文件中写出所有的可能性,但我觉得有一种更巧妙的方法。我想我想提供一个开始时间、一个结束时间、一个增量,并且目前只提供一个名为“关闭”的选项(想想“business_hours”)。所以,我的选择可能会显示:'Closed'5:00am5:30am6:00am...[allthewayto]...11:30pm谁能想出更好的方法,或者只是将它们全部“拼写”出来的最佳方法? 最佳答案 此答案基于@emh的答案。defcreate_hour
根据YAML文档,可以传递hashofoptions到.to_yaml方法。目前,当我按照文档中的建议传递选项时,它不起作用,哈希被忽略。irb(main):001:0>require'yaml'=>trueirb(main):002:0>user={"1"=>{"name"=>"john","age"=>44}}user.to_yaml=>"---\n\"1\":\nname:john\nage:44\n"现在,传递一些选项:irb(main):014:0>user.to_yaml(:Indent=>4,:UseHeader=>true,:UseVersion=>true)=>"--
我需要在Ruby1.8+中创建一个SSLSocket来与加密服务对话。我想在SSLContext对象上设置SSL选项(它最终调用底层OpenSSL库中的SSL_CTX_set_options)。我没有看到任何明显的方法来做到这一点。这是使用OpenSSL::SSL::SSLContext接口(interface)。作为引用点,这类似于调用set_options()在Python的pyOpenSSL库中。 最佳答案 例子:ctx=OpenSSL::SSL::SSLContext.newctx.set_params(:options=>
Ruby“OptionParser将根据此描述自动为您生成帮助屏幕”[http://ruby.about.com/od/advancedruby/a/optionparser.htm]有没有办法删除命令选项的帮助文本。我可以使用隐藏命令,但有一个命令选项(开关)并隐藏其帮助上下文。 最佳答案 我能够为此拼凑出一个不太优雅的解决方案。它将隐藏主帮助屏幕中的选项,听起来它可能符合您的需要:require'optparse'options={}OptionParser.newdo|opts|opts.banner="Usage:#{$0}