PHP检查空数组表单输入

时间:2014-09-25 07:00:43

标签: php mysql

我有此代码并隐藏diplay:none jQuery添加/删除输入。

<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数据库。

我该如何解决这个问题?!

2 个答案:

答案 0 :(得分:0)

使用PHP empty,例如if (!empty($_POST['image_url']))

答案 1 :(得分: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>

我提供的代码只会检查用户是否插入了空格。如果要增强输入检查,可以调整代码。