我有一个选择列表,它应该以几种形式发送数据

时间:2013-03-26 20:59:37

标签: php jquery ajax

我有这样的网站:(一组表格)

                <select id="group_dropdown" name="selectinput">
                <option value=0>all</option>
                <option value=1>1 option</option>
                <option value=2>2 option</option>
                </select>               


        <form method="post" class="form-inline" id="form11">
           <input type="text" name="1forminput" placeholder="0"></label>
        <button type="submit" class="btn btn-success ml40" >save</button>
        </form>

        <form method="post" class="form-inline" id="form22">
           <input type="text" name="forminput" placeholder="0"></label>
        <button type="submit" class="btn btn-success ml40" >save</button>
        </form>

我希望在发送任何这些表单时从此select(这两个表单的“相互”)发送数据(如带有发送表单的附加字段)。 这是一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:1)

添加隐藏的输入,并使用带有起始标签标签等的有效标记

<select id="group_dropdown" name="selectinput">
    <option value="0">all</option>
    <option value="1">1 option</option>
    <option value="2">2 option</option>
</select>

<form method="post" class="form-inline" id="form11">
    <label>
        <input type="text" name="1forminput" placeholder="0" />
        <input type="hidden" name="select_value" />
    </label>
    <button type="submit" class="btn btn-success ml40">save</button>
</form>

<form method="post" class="form-inline" id="form22">
    <label>
        <input type="text" name="forminput" placeholder="0" />
        <input type="hidden" name="select_value" />
    </label>
    <button type="submit" class="btn btn-success ml40">save</button>
</form>

然后在选择的值更改时填写隐藏的输入:

$('#group_dropdown').on('change', function() {
    $('[name="select_value"]').val(this.value);
}).trigger('change');

选择的值将在提交时与两个表单一起发送,并且访问如下:

$_POST['select_value'];

答案 1 :(得分:0)

您可以在序列化表单后添加新参数,如下所示:

$('#form11').submit(function(){
   $.ajax({
        type : 'POST',
        url : 'url',
        data : $('#form11').serialize() + "&select="+$('#group_dropdown').val()  
    }).done(function( data ) {
       //callback
    });
   return false;
  });