duanbianweng5353 2017-09-14 11:33
浏览 73
已采纳

复选框与PHP的有序选择数组

<form method='post' action=''>
 <label for="x1">X1</label>
 <input id="x1" name="checkbox[]" type="checkbox" value="x1" />

 <label for="x2">X2</label>
 <input id="x2" name="checkbox[]" type="checkbox" value="x2" />

 <label for="x3">X3</label>
 <input id="x3" name="checkbox[]" type="checkbox" value="x3" />

 <label for="x4">X4</label>
 <input id="x4" name="checkbox[]" type="checkbox" value="x4" />

 <button type='submit' name='submit'>Submit</button>
</form>

In this form How can i get the selection order of the checkboxes inside the php array

Just if i submitted the form after clicking x4 > x2 > x3 > x1

i want to get ordered in the array as it is selected checkbox[x4, x2, x3, x1]

The normal array i get is as it is ordered checkbox[x1, x2, x3, x4].

  • 写回答

2条回答 默认 最新

  • dongmao3148 2017-09-14 11:40
    关注

    Check the clicked order using jquery

    push the value to array on change event.if is checked push to the array.is unchecked value remove from array

    Join the array with , add the value to hidden input .you could post this value to server

    var arr=[]
    $('input[type=checkbox]').on('change', function() {
      if ($(this).is(':checked')) {
        arr.push($(this).val())
      } else {
        var r =arr.indexOf($(this).val())
        arr.splice(r, 1)
    }
    $('input[type=hidden]').val(arr.join(',')) //for  server use
    console.log(arr)
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form method='post' action=''>
      <label for="x1">X1</label>
      <input id="x1" name="checkbox[]" type="checkbox" value="x1" />
    
      <label for="x2">X2</label>
      <input id="x2" name="checkbox[]" type="checkbox" value="x2" />
    
      <label for="x3">X3</label>
      <input id="x3" name="checkbox[]" type="checkbox" value="x3" />
    
      <label for="x4">X4</label>
      <input id="x4" name="checkbox[]" type="checkbox" value="x4" />
    <input type="hidden" name="clickedorder" >
      <button type='submit' name='submit'>Submit</button>
    </form>

    Updated

    change the label value depend on clicking order

    var arr=[]
    $('input[type=checkbox]').on('change', function() {
      if ($(this).is(':checked')) {
        arr.push($(this).val())
      } else {
        var r =arr.indexOf($(this).val())
        arr.splice(r, 1)
    }
    $('input[type=checkbox]').each(function(a){
    //console.log(arr.indexOf($(this).val()))
      if(arr.indexOf($(this).val())>-1){
         $(this).prev('label').text($(this).val().toUpperCase()+'-'+(arr.indexOf($(this).val())+1))
      }else{
        $(this).prev('label').text($(this).val().toUpperCase())
      }
    })
    $('input[type=hidden]').val(arr.join(',')) //for  server use
    
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <form method='post' action=''>
      <label for="x1">X1</label>
      <input id="x1" name="checkbox[]" type="checkbox" value="x1" />
    
      <label for="x2">X2</label>
      <input id="x2" name="checkbox[]" type="checkbox" value="x2" />
    
      <label for="x3">X3</label>
      <input id="x3" name="checkbox[]" type="checkbox" value="x3" />
    
      <label for="x4">X4</label>
      <input id="x4" name="checkbox[]" type="checkbox" value="x4" />
    <input type="hidden" name="clickedorder" >
      <button type='submit' name='submit'>Submit</button>
    </form>

    </div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么