繁体   English   中英

检查所有数组是否有值且不为空

[英]Check all the array has value and not empty

的index.html

<form id="players_form"  >
    <input type=" text" name="main_name[]" value="1">
    <input type=" text" name="main_name[]" value="2">
    <input type=" text" name="main_name[]" value="3">
    <input type=" text" name="main_name[]" value="4">
    <input type=" text" name="main_name[]" value="5">

    <input type=" text" name="sub_name[]" value="6">
    <input type=" text" name="sub_name[]" value="7">
    <input type=" text" name="sub_name[]" value="8">
    <input type=" text" name="sub_name[]" value="9">
    <input type=" text" name="sub_name[]" value="">
    <input type="button" value="Submit" id="submit">

 </form>

脚本

$('#submit').click(function() {
var data = JSON.stringify($("#players_form").serializeArray());
// alert(data);
$.ajax({ // Send the credential values to another checker.php using Ajax in POST menthod
type: 'POST',
data: {
  list: data
},
url: 'process.php',
success: function(responseText) {
  if (responseText == 1) {
    alert("Sucess");
  }

process.php

$decoded = json_decode($_REQUEST['list'], true);
print_r(array_filter($decoded));

结果

Array( [0] => Array ( [name] => main_name[] [value] => 1 )
[1] => Array ( [name] => main_name[] [value] => 2 ) 
[2] => Array ( [name] => main_name[] [value] => 3 ) 
[3] => Array ( [name] => main_name[] [value] => 4 ) 
[4] => Array ( [name] => main_name[] [value] => 5 ) 
[5] => Array ( [name] => sub_name[] [value] => 6 ) 
[6] => Array ( [name] => sub_name[] [value] => 7 ) 
[7] => Array ( [name] => sub_name[] [value] => 8 ) 
[8] => Array ( [name] => sub_name[] [value] => 9 ) 
[9] => Array ( [name] => sub_name[] [value] => ))

预期代码

if(all the arrays has value)
{
 // True
}
else
{
 Any one of the values in array is empty 
 }

在上面的代码喜的朋友我送表单值通过对process.php AJAX function ,在process.PHP我应该检查wheather的所有文本框应包含的值,那么它应该继续到别的下一步,应该呼应对不起你空值。 在我的代码中,我的最后一个框值为空<input type=" text" name="sub_name[]" value="">结果也returns [9] => Array ( [name] => sub_name[] **[value] =>** )) ,如何检查所有数组是否都具有value。 提前致谢

最好的方法使用empty()函数

if(!empty($decoded))
{
 // True
}
else
{
 Any one of the values in array is empty 
 }

首先,您需要先验证数据,然后再将其发送到服务器。 例如:

var dataValid = true;
$("#players_form input").each(function(){
    if ($(this).val() == ''){
        dataValid = false;
    }
});

if (dataValid){
   // send data
} else {
   alert('Fill in all the data!');
}

然后在服务器上,执行以下操作:

$valid = true;
foreach($decoded as $input){
    if ($input['value'] == ''){
        $valid = false;
    }
}

if ($valid){
    // done good
} else {
    echo "Fill in all the data!";
}

最好在发布数据之前进行检查, [].every都可以这样做。 every允许您检查数组的所有元素是否通过特定测试。

var ok = data.every(function(element) {
    return element.value; // if value is empty, it's false
});

if (ok) {
    // POST request
} else {

}

在PHP5(> = 5.5.0)中,您可以搜索多维数组

$user=Array
(
(0) => Array
    (
        (name) => 'Susan',
        (age) => 21
    ),

(1) => Array
    (
        (name) => 'Mark',
        (age) => 33
    ),

(2) => Array
    (
        (name) => 'Michael',
        (age) => 25
    ));
$key = array_search(21, array_column($user, 'age'));

您可以在数组中搜索''值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM