当前位置: 首页 > 知识库问答 >
问题:

jQuery相关字段(重置值),添加到MySQL同名属性字段

井昊乾
2023-03-14

我已经设置了4个阶段多个相关的下拉字段。我想选择地区,然后是国家,拥有或特许经营,最后是商店名称。

我的问题:1)显示/隐藏工作正常,但在选择“-”时不会重置值。这意味着我可以选择一个商店,然后改变我的观点,从上面的字段类别中选择另一个选项,然后选择第二个商店。该帖子将同时具有这两个值。我想在选择其他选项时重置第一个值

2)店名具有所有名称属性store_name。当我使用implode()时,我无法使它在mysql db上正确记录。

jQuery:

$( document ).ready(function() {
    $("#region").bind("change",function(){
        var selectedValue=$(this).val().toLowerCase();
        switch(selectedValue){
            case "asia": 
                $("#country_asia").show();  
                $("#country_america").hide()
                $("#country_europe").hide()
                break;
            case "america": 
                $("#country_asia").hide();  
                $("#country_america").show();
                $("#country_europe").hide();    
                break;
            case "europe":  
                $("#country_asia").hide();  
                $("#country_america").hide();
                $("#country_europe").show();    
                break;
            case "-":   
                $("#country_asia").hide()   
                $("#country_america").hide()
                $("#country_europe").hide()
                break;
                        }
    });
    $("#country_europe_dd").change(function()
{
  var selectedValue=$(this).val().toLowerCase();
  if(selectedValue == "greece")
  {
    $("#owned_gr").show();
  }
  else if(selectedValue == "-")
  {
    $("#owned_gr").hide();
  }
})
    $("#owned_gr_dd").change(function()
{
  var selectedValue=$(this).val().toLowerCase();
  if(selectedValue == "own")
  {
    $("#store_name").show();
    $("#store_name_greece_fran").hide();
  }
  else if(selectedValue == "fran")
  {
    $("#store_name_greece_fran").show();
    $("#store_name").hide();
  }
  else if(selectedValue == "-")
  {
    $("#store_name").hide();
    $("#store_name_greece_fran").hide();
  }
})
});
    </script>

表格:

<div class="form-group region required" data-cid="region">
  <label class="control-label" for="region">Region</label>

<div class="input-group"><span class="input-group-addon left"><i class="glyphicon glyphicon-pushpin"></i></span>
  <select class="select form-control" onChange="displayForm(this)" id="region" name="region">
    <option  value="-">- Select -</option>
    <option  value="america">America</option>
    <option  value="asia">Asia</option>
    <option  value="europe">Europe</option>
  </select>
</div>
</div>

<div id="country_europe" class="form-group country_europe required" style="display: none" data-cid="country_europe">
  <label class="control-label" for="country">Country</label>

<div class="input-group"><span class="input-group-addon left"><i class="glyphicon glyphicon-pushpin"></i></span>
  <select class="select form-control" id="country_europe_dd" name="country">
    <option  value="-">- Select -</option>
    <option  value="cyprus">Cyprus</option>
    <option  value="france">France</option>
    <option  value="germany">Germany</option>
    <option  value="greece">Greece</option>
    <option  value="iceland">Iceland</option>
    <option  value="italy">Italy</option>
    <option  value="netherlands">Netherlands</option>
    <option  value="norway">Norway</option>
    <option  value="serbia">Serbia</option>
    <option  value="switzerland">Switzerland</option>
  </select>
</div>
</div>

<div id="owned_gr" class="form-group owned_gr required" style="display: none" data-cid="owned_gr">
  <label class="control-label" for="owned_gr">Owned or Franchise ?</label>

<div class="input-group"><span class="input-group-addon left"><i class="glyphicon glyphicon-pushpin"></i></span>
  <select class="select form-control" id="owned_gr_dd" name="owned">
    <option  value="-">- Select -</option>
    <option  value="own">Owned</option>
    <option  value="fran">Franchise</option>
  </select>
</div>
</div>

<div id="store_name" class="form-group store_name required" style="display: none" data-cid="store_name">
  <label class="control-label" for="store_name">Store Name - Greece (Owned)</label>

<div class="input-group"><span class="input-group-addon left"><i class="fa fa-buysellads"></i> </span>
<select class="form-control" name="store_name[]" id="store_name_gr_owned"
    data-rule-required="true" >
  <option  value="-">- Select -</option>
  <option  value="option1">Option1</option>
  <option  value="option2">Option2</option>
  </select>
</div>

</div>

<div id="store_name_greece_fran" class="form-group store_name_greece_fran required" style="display: none" data-cid="store_name_greece_fran">
  <label class="control-label" for="store_name_greece_fran">Store Name - Greece (Franchise)</label>

<div class="input-group"><span class="input-group-addon left"><i class="fa fa-buysellads"></i> </span>
<select class="form-control" name="store_name[]" id="store_name_greece_fran"   
    data-rule-required="true" >
  <option  value="">- Select -</option>
  <option  value="athens">Athens</option>
  <option  value="crete">Crete</option>
  </select>
</div>

</div>

PHP:

$store_name = implode($_POST['store_name']);

共有2个答案

盖泽宇
2023-03-14

我找到了解决办法。

我必须在jQuery上更进一步,并使用val()。在我选择的字段上选择特定值时,我会重置其他类别值

    $("#store_name_greece_fran_dd").change(function()
{
    var selectedValue=$(this).val().toLowerCase();
  if(selectedValue == "athens" || selectedValue == "athens" || selectedValue == "crete" || selectedValue == "crete")
  {
    $("#store_name_owned_dd").val('');
  }
})
周瀚
2023-03-14

编辑:从你下面的评论来看,听起来解决#1也会解决#2。

对于#1,每当隐藏元素时,也将其值设置为-。例如。

case "asia": 
    $("#country_asia").show();  
    $("#country_america").hide();
    $("#country_america").val("-");
    $("#country_europe").hide();
    $("#country_europe").val("-");      
    break;

或者,使用vanilla JS:

document.getElementById("country_europe_dd").value = '-';

 类似资料:
  • 问题内容: 我想将属性值添加到查询中的xml字段中。我的例子如下 我希望我的最终结果看起来像这样 问题答案: 如果需要选择数据,则可以使用xquery: 甚至更简单:

  • 在SpringMVC表单中,我面临着将禁用的文本框绑定到模型对象的问题。问题是,即使最初填充了表单,在提交表单后,禁用框的内容也会在下一次页面刷新时丢失,因为禁用的字段不会提交。 然而,我通过添加一个绑定到同一属性的隐藏字段来解决这个问题。现在,我的禁用文本框即使在提交后仍保留其内容。如果我需要始终在禁用框中显示属性值,这是正确的方法吗?

  • 问题内容: 如果您有一个包含带有重复属性的文本输入的表单,并且该表单已经过帐,那么您仍然能够从PHP数组中获取所有字段的值吗? 问题答案: 否。仅最后一个输入元素可用。 如果要使用相同名称的多个输入,请使用输入名称属性。然后将包含foo的数组,其中包含来自输​​入元素的所有值。 如果不使用则仅包含最后一个值的原因是因为PHP基本上只会爆炸并遍历要填充的原始查询字符串。当遇到已经存在的名称/值对时,

  • 问题内容: 需要在ElasticSearch中找到一种方法来根据字段的特定值来提高文档的相关性。具体来说,我所有文档中都有一个特殊字段,该字段值越高,包含该文档的文档就越相关,而与搜索无关。 考虑以下文档结构: 我希望boosting_field值较高的文档与那些boosting_field值较低的文档 本质上相关性 更高。这只是一个起点- 在确定搜索中每个文档的最终相关性分数时,还将考虑查询与其

  • 问题内容: 有一个这样的表单字段,名为Planning,我需要将title属性添加到选择中,最后渲染如下: 如何实现? 问题答案: 你必须对该字段进行子类化,以采取任何方式指定你想要的标题以及显示新属性的小部件。 如果你有这样的事情(请注意:完全未经测试): …你应该能够做到这一点:

  • 我需要将源类中的字段值映射到字段属性。我可以使用Mapstruct使用@mapper注释的'expression'参数来完成 有没有其他方法可以不使用“表达式”来进行映射?