防止在get方法php中传递其他具有相同名称的隐藏下拉字段


prevent passing other hidden dropdown field with same name in get method php

我使用的是PHP,Yii。我有三个标签tab1 tab2 tab3

在每个选项卡中,我都有一个名称为的下拉字段,其中键入,并根据选项卡提供不同的下拉选项。

当我选择第一个选项卡时,其他两个选项卡的类型字段将被隐藏。在其他选项卡中也是如此。

问题是,当我按下搜索按钮时,所有三个选定的类型值都显示在GET方法中,如?search[type]=130&search[type]=111&search[type]=111,这会导致错误的搜索结果。

我不需要将隐藏字段值传递给GET方法操作。我并不是要求代码来做到这一点。是否可以不传递隐藏字段值?如果是,请引导我。

HTML表单提交会将所有字段传递给请求的操作。

我能看到如何做到这一点的唯一方法是使用JavaScript和HTML的组合。

考虑这两个字段。

<input type='text id='field1' name='field1' value="">
<input type='text id='field2' value="">

只有字段1将通过普通表单提交按钮。

如果需要传递field2,可以使用JavaScript设置要发送到服务器的值。使用JQuery,您会看到以下内容:

$.ajax({
    type: 'POST',
    url: 'http://place.your.url.here.com',
    data: { 
        'field1': $("#field1").val(),
        'field2': $("#field2").val(),
    },
    success: function(data){
        alert(msg);
    }
});

因此,剩下的就是创建另一个隐藏字段,指示您所在的选项卡,单击时设置的选项卡。然后,在发送表单时,创建需要发送的POST值。