2015-10-21 68 views
0

我尝试使用Codeigniter 3.x和Jquery 构建一个自动评分系统,并且很难找到源代码。检查数组数据中的空数据(jQuery或PHP)

答案输入法是多选题和简答题或多答案。

像吹图像

sample image

我的HTML:

[CHECKBOX LIST] 
<div class="btn-group" data-toggle="buttons"> 
    <label class="btn btn-lg btn-default"> 
     <input type="checkbox" class="input_ans" name="<?=$t->idx?>" value="1" />1 
    </label> 
    <label class="btn btn-lg btn-default"> 
     <input type="checkbox" class="input_ans" name="<?=$t->idx?>" value="2" />2 
    </label> 
    <label class="btn btn-lg btn-default"> 
     <input type="checkbox" class="input_ans" name="<?=$t->idx?>" value="3" />3 
    </label> 
    <label class="btn btn-lg btn-default"> 
     <input type="checkbox" class="input_ans" name="<?=$t->idx?>" value="4" />4 
    </label> 
    <label class="btn btn-lg btn-default"> 
     <input type="checkbox" class="input_ans" name="<?=$t->idx?>" value="5" />5 
    </label> 
</div> 

[INPUT TEXT LIST} 
<?php 
$tagArray = explode(',',$t->EAnswer); 
$arrayCount = count($tagArray); 
?> 
<?php 
if ($arrayCount == 1) { 
    echo '<input class="form-control input-lg input_ans1" name="'.$t->idx.'" type="text">'; 
} else { 
    for ($i=0; $i < $arrayCount; $i++) { 
     $calc_col = 12/$arrayCount; 
     echo "<div class='col-md-$calc_col col-xs-$calc_col' style='padding:5px;'>"; 
     echo '<input class="form-control input-lg input_ans1" name="'.$t->idx.'" type="text">'; 
     echo "</div>"; 
    } 
} 
?> 

复选框列表的选择题答案,输入文本列表是简答题还是多答案。

我的javascript:

<script> 
$(".submit_answer").click(function(event){ 
    event.preventDefault(); 
    var searchIDs = $(".input_ans:checked").map(function(){ 
     return this.name+':'+ this.value; 
    }).toArray(); 

    var searchIDs1 = $(".input_ans1").map(function(){ 
     return this.name+':'+this.value; 
    }).toArray(); 

    bootbox.confirm("ARE YOU SUBMIT TEST?", function(result) { 
     if(result) { 
      var merge_sort = $.merge($.merge([],searchIDs), searchIDs1); 
      var array_data = merge_sort.toString(); 
      $.ajaxSettings.traditional = true; 
      $.ajax({ 
        type : "POST", 
        data : { "data" : array_data }, 
        dataType: "html", 
        url : '/CONTROLLER_NAME/AAA?>', 
        success : function(msg) { 
         console.log(msg) 

         if() { 
          // error 
         } else {       
          /// success 
         } 
        } 
      }) 
     } 
    }); 
}) 

</script> 

我的PHP:

<?php 
$data = $this->input->post('data'); 
$tags = explode(',',$data); 

natsort($tags); 

$new= []; 

foreach($tags as $v) { 
    $temp = explode(':', $v); 
    $new[$temp[0]][] = $temp[1]; 
} 
foreach($new as $k => $v) { 
    $new[$k] = $k . ':' . implode(',', $v); 
} 

foreach ($new as $key) { 
    $Num = strrev(strstr(strrev($key) , ':')); 
    $Text = strstr($key , ':'); 

    if (validate data) { 
     } 
    else { 
      //do something 
     } 
} 

我的问题是如何检查jQuery的或PHP验证空数据?像下面的图片:

sample image2

我想要做的检查:

$Text = strstr($key , ':'); 

为空,则警惕:

alert($Num."nth data is Empty") 

alert(please input data) 
+0

使用http://jqueryvalidation.org/库。 – sandeepsure

+0

阅读这个turorial http://w3code.in/2015/10/submit-a-form-with-ajax-after-jquery-validation-is-successful/ – Ricky

+0

谢谢,我解决了这个问题,使用jquery验证 –

回答

0

在PHP

if(empty($text)){ echo "please input data"; // your code here 
    } 
+0

任何解释为什么以及您的答案如何适用于OP? –

+0

如果你的$ text是空的,那么if语句将被执行 –