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

Posted

技术标签:

【中文标题】防止在get方法php中传递其他具有相同名称的隐藏下拉字段[重复]【英文标题】:prevent passing other hidden dropdown field with same name in get method php [duplicate] 【发布时间】:2015-05-31 10:09:45 【问题描述】:

我正在使用 php,Yii。我有 3 个标签 tab1 tab2 tab3

在每个选项卡中,我都有一个名为 type 的下拉字段,其中根据选项卡具有不同的下拉选项。

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

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

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

【问题讨论】:

【参考方案1】:

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

我能看出你如何做到这一点的唯一方法是结合使用 javascript 和 HTML。

考虑这两个字段。

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

只有 field1 会被普通表单提交按钮传递。

如果您需要传递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 值。

【讨论】:

以上是关于防止在get方法php中传递其他具有相同名称的隐藏下拉字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 GET 请求中为相同参数名称传递多个值的正确方法

C#防止基类方法被派生类中的new修饰符隐藏

php怎么传递参数

我可以有两个具有相同属性名称的对象吗? [复制]

PHP:通过图像提交按钮传递选择和隐藏输入的值

php href 传递参数问题