PHP预先检查字符串

时间:2017-07-31 07:53:18

标签: php jquery checkbox explode checked

您好我想告诉您,我知道有很多关于相同问题的堆栈溢出的解决方案。但是我的不同而且复杂。

我有Php变量,它有逗号分隔值,如“car_ferrari,car_jaguar,car_lamborghini”,我有多个复选框
enter image description here name ='car []'value ='car_ferrari'
enter image description here name ='car []'value ='car_lamborghini'
enter image description here name ='car []'value ='car_hummer'
enter image description here name ='car []'value ='car_jaguar'
enter image description here name ='car []'value ='car_aston'

如果此变量具有相同的字符串值,我想检查checbox。
如同复选框的值 car_ferrari,car_jaguar,car_lamborghini应该被检查
我有大量的这些类型的变量以及大量的复选框数组。我知道我可以使用explode然后使用in_array()但是为每一个都设置条件真的很耗时大约400个复选框的复选框。

如果Jquery有助于解决问题,我会使用它,但给我一个合适的答案。请问我查询。
提前致谢。

1 个答案:

答案 0 :(得分:2)

我创建了一个JSFiddle,它演示了如何用逗号分割字符串,然后迭代并选择带有相应值的复选框。

纯JS解决方案

var myString = "car_ferrari,car_jaguar,car_lamborghini";

var selectedCarArray = myString.split(",");

selectedCarArray.forEach(function(element) {
    document.getElementById('checkbox_' + element).checked = true;
});
<input type="checkbox" name="car[]" value="car_ferrari" id="checkbox_car_ferrari" />
<input type="checkbox" name="car[]" value="car_lamborghini" id="checkbox_car_lamborghini" />
<input type="checkbox" name="car[]" value="car_hummer" id="checkbox_car_hummer" />
<input type="checkbox" name="car[]" value="car_jaguar" id="checkbox_car_jaguar" />
<input type="checkbox" name="car[]" value="car_aston" id="checkbox_car_aston" />

jQuery解决方案

var myString = "car_ferrari,car_jaguar,car_lamborghini";

var selectedCarArray = myString.split(",");

selectedCarArray.forEach(function(element) {
    $('input[value="' + element + '"]').prop('checked', true);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="car[]" value="car_ferrari" />
<input type="checkbox" name="car[]" value="car_lamborghini" />
<input type="checkbox" name="car[]" value="car_hummer" />
<input type="checkbox" name="car[]" value="car_jaguar" />
<input type="checkbox" name="car[]" value="car_aston" />