2014-09-25 78 views
0

我有这段代码,并且diplay:none用于jQuery添加/删除输入。PHP检查空数组表格输入

<div style="display: none;" id='form-group'> 

    <div class="form-group custom-cols"> 
     <div class="col-sm-12 control-label"> 
      <div class="col-sm-2"> 
       <div class="input-append"> 
        <div class='col-sm-10 no-pad'><img src="<?php echo no_image(); ?>" id='upload-img' class="width100" /> 
         <input name="image_url[]" id="upload" type="text" value="" style='display: none'> 
         <a class="width24 thumbcheck" data-toggle="tooltip" data-placement="bottom" title="<?php echo __('Gallery Cover','galleries'); ?>" data-id=""><i class="fa fa-circle-o"></i></a> 
         <a class="col-sm-8 no-pad boxGetFile"><h6><?php echo __('select image', 'galleries'); ?></h6></a> 
        </div> 

       </div> 
      </div> 
      <div class="col-sm-7 padding-left-8"> 
       <input type="text" name='image_title[]' class="form-control" placeholder='<?php echo __('Image title','galleries'); ?>' /> 
       <input type="text" name='image_alt[]' class="form-control" placeholder='<?php echo __('Image alt','galleries'); ?>' /> 
      </div> 
      <div class="col-sm-1"> 
       <a href="#" onclick="return false;" class="glyphicon glyphicon-remove btn-remove"></a> 
      </div> 
     </div> 
    </div> 
</div> 

我检查使用PHP对于不在数据库中插入空值:(using count(); and !empty();)

<?php 
    $_POST['image_url'] = (empty($_POST['image_url'])) ? array() : $_POST['image_url']; 
    // if (!empty($_POST['image_url'])){ 
    if (count($_POST['image_url']) > 0){ 
     $value['gallery_data'] = array(); 
     $value['gallery_data'] = serialize((array(
      array_values($_POST['image_url']) , 
      array_values($_POST['image_title']) , 
      array_values($_POST['image_alt']) 
     ))); 
     SQL::insert("UPDATE " . NEWS_GALLERIES . " SET name = ? , cover = ? WHERE item_id = ? ", $value['gallery_data'], $_POST['cover'], $id); 
    } 
?> 

但在行动我看到插入空场到MySQL数据库。

我该如何解决这个问题?

回答

0

使用PHP emptyif (!empty($_POST['image_url']))

0

空白头的回答也是可行的,在PHP方式。或者与此同时,在HTML样式中,您可以在文本框中添加required标签。

例子:

<input type="text" required> 

我们的回答可以检测空白输入,但不能转嫁的空间。如果用户只输入一个空间会怎么样?空间将通过表单传递!

你可以做一个彻底的输入检查,但通过使用Javascript

您的脚本:

$(document).ready(function(){ 
$("#submitbutton").click(function() { 

    var $all = $(".textitem"), 
     $empty = $all.filter(function() { return 0 === $.trim(this.value).length; }), 
     valid = $empty.length === 0 || 
       $empty.length != $all.length && $all.index($empty.first()) + $empty.length === $all.length; 

    if(!valid) {alert("Please make sure to have a valid input."); return false;} 

}); 
}); 

你的样表:

<form> 
    <input type="text" class="textitem"> 
    <input type="submit" value="Add Item" id="submitbutton"> 
</form> 

我提供,如果用户只是插入空间/将只检查是代码。如果你想增强对输入的检查,你可以调整代码。