首页  >  问答  >  正文

如何在MySQL中将具有相同名称但不同ID的两个字段合并到同一行中?

我有一个项目,客户可以根据复选框选择价格,并且输入框的名称相同, 如果我选择复选框但没有输入内容,我只想将复选框的值存储在数据库中,如果我选择了输入框并且只想存储输入框的值。 这是我的代码:

<ul class="donate-now">[enter image description here](https://i.stack.imgur.com/EyU7O.png)
                  <li>
                    <input type="radio" class="form-control btn-default target" id="a100" name="amount" value="100"/>
                    <label for="a25">100€/mois</label>
                  </li>
                  <li>
                    <input type="radio" class="form-control btn-default target" id="a200" name="amount" value="200" />
                    <label for="a50">200€/mois</label>
                  </li>
                  <li>
                    <input type="radio" class="form-control btn-default target" id="a300" name="amount" value="300" checked/>
                    <label for="a75">300€/mois</label>
                  </li>
                 
                </ul>
                </div>
              
            
                
                <div class="container form-control-lg" id="montant-libre">
                  <span class="input-symbol-euro"><input type="text" class="form-control form-control-md" style="color: #d34607;" id="montantlibre" onclick="clearRadio()"  placeholder="Montant libre" name="amount" min="1"/></span>
                  
                </div>

我是否需要在我的mysql上做一些更改,因为我总是遇到错误?

P粉087951442P粉087951442178 天前293

全部回复(1)我来回复

  • P粉419164700

    P粉4191647002024-04-05 10:51:24

    <form id="donate">
       <ul class="donate-now">
          <li>
             <input type="radio" class="form-control btn-default target" id="a100" name="amount" value="100"/>
             <label for="a25">100€/mois</label>
          </li>
          <li>
             <input type="radio" class="form-control btn-default target" id="a200" name="amount" value="200" />
             <label for="a50">200€/mois</label>
          </li>
          <li>
             <input type="radio" class="form-control btn-default target" id="a300" name="amount" value="300" checked/>
             <label for="a75">300€/mois</label>
          </li>
       </ul>
       <div class="container form-control-lg" id="montant-libre">
          <span class="input-symbol-euro">
          <input type="text" class="form-control form-control-md" style="color: #d34607;" id="montantlibre" onclick="clearRadio()"  placeholder="Montant libre" name="amount" min="1"/>
          </span>
       </div>
    </form>
    <script>
       // 获取表单元素
       var form = document.getElementById("donate");
       if (form) {
       // 为表单添加提交事件监听器
       form.addEventListener("submit", function(event) {
         // 获取选中的单选按钮
         var selectedRadio = document.querySelector('input[name="amount"]:checked');
       
         // 获取输入字段
         var inputField = document.getElementById("montantlibre");
         var amount = selectedRadio.value;
         // 检查输入字段是否有值
         if (!Number(inputField.value) !== true) {
           // 新值
            amount = inputField.value;
         }
       
         console.log(amount);
         // 阻止默认的表单提交
         event.preventDefault();
       });
       }
    </script>
    
    

    详情:

    1-使用document.getElementById("donate")获取表单元素。

    2-使用form.addEventListener("submit", function(event) { ... });为表单添加提交事件监听器。

    3-在事件监听器函数内部,使用document.querySelector('input[name="amount"]:checked')获取选中的单选按钮。

    4-使用document.getElementById("montantlibre")获取输入字段。

    5-使用if (!Number(inputField.value) !== true) { ... }检查输入字段是否有值。

    6-如果输入字段有值,则将该值存储在amount变量中。否则,将选中的单选按钮的值存储在amount变量中。

    7-使用event.preventDefault()阻止默认的表单提交。

    回复
    0
  • 取消回复