首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用js或jquery将选项组合传递给PHP表单

如何使用js或jquery将选项组合传递给PHP表单
EN

Stack Overflow用户
提问于 2015-06-27 22:29:59
回答 1查看 87关注 0票数 1

例如,我有三个选择框。

代码语言:javascript
复制
<select name="cat-1" id="cat-1">
  <option value="0">A</option>
  <option value="1">B</option
</select>
<select name="cat-2" id="cat-2"> 
  <option value="0">AA</option>
  <option value="1">BB</option
</select>
<select name="cat-3" id="cat-3">
  <option value="0">AAA</option>
  <option value="1">BBB</option
</select>
<input type="submit" value="Add">

如果我选择选项,例如一个BB AAA并按下ADD,我希望这个组合以文本形式出现在add按钮as:A BB AAA (X) x下-取消这样的组合。我想要与取消任何组合的能力的三个组合。在提交表单后,我想传递这样的组合值--在这种情况下,我猜数组0、1、0会很好。选项值不能单独提交,因为cat-2和cat-3是使用ajax - cat-3动态填充的,而cat-2依赖于cat-1,因此可以进行多种组合。

我正在使用select2 (http://select2.github.io/examples.html)。如果我可以返回样式类似于“多个选择框”的组合(请参阅上面的链接),这将是完美的。

知道我该从哪里开始吗?我不知道如何实现这一正确的方式与能力在未来,例如点击组合,以设置选择框组合值等。

我猜数据库的最终输入将生成数组数组,如[0,1, 0,0,0,0,0,1,0,3,.]在隐藏的领域?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-28 17:20:33

我已经编写了自己的代码来处理这个问题。下面是工作示例:http://jsfiddle.net/s2arvdck/13/

代码语言:javascript
复制
<select name="cat_1" id="cat_1">
    <option value="0">I</option>
    <option value="1">II</option>
    <option value="2">III</option>
</select>
<select name="cat_2" id="cat_2">
    <option value="0">A</option>
    <option value="1">B</option>
    <option value="2">C</option>
</select>
<select name="cat_3" id="cat_3">
    <option value="0">a</option>
    <option value="1">b</option>
    <option value="2">c</option>
</select>
<input type="button" id="addButton" value="Add">
<br />Combinations: <span id="combContainer"></span>

<br />Expected hidden: <span id="expected"></span>

$('#addButton').on('click', addButtonClicked);

function addButtonClicked(event) {

    var cat1 = $('#cat_1 option:selected').val();
    var cat2 = $('#cat_2 option:selected').val();
    var cat3 = $('#cat_3 option:selected').val();

    if ($('#combContainer:contains("[' + cat1 + ', ' + cat2 + ', ' + cat3 + ']")').length == 0) {
        $('#combContainer').append('<div><span class="comb">[' + cat1 + ', ' + cat2 + ', ' + cat3 + ']</span> <span id="combDel">remove</span></div>');
    }

    var arr = [];
    $('.comb').each(function (index, elem) {
        arr.push($(this).text());
        $('#expected').text(arr.join(''));
    });

    $("#combContainer").on("click", "#combDel", function () {
        var text = $(this).closest("div").children(".comb").text();
        if ($('#combContainer:contains("[' + text + ']")').length == 0) {
            $(this).closest("div").remove();
            var expectedText = $("#expected").text();
            var newExpectedText = expectedText.replace(text, '');
            $("#expected").text(newExpectedText);
        }
    });

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31094180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档