php post方法在数据库中插入数据时出现错误

时间:2019-04-19 18:22:13

标签: javascript php ajax

我在使用ajax和javascript的php中使用post方法,然后添加,然后给出erorr ..在此项目中,我被设置为类和模型,请帮助我如何解决此问题。.

Manufacturer.php     

class Manufacturer {
    private $table = 'manufacturer';

    public function select() {

    }
    public function selectAll(){
        $result = DB::select($this->table, ["id", "name"]);
        return $result;
    }

    public function insert($columns = []) {

        $result = DB::select($this->table, ["name"], "name = '$columns[name]'");

        if(count($result) > 0) {
            return "duplicate";
        }

        $result = DB::insert($this->table, $columns);
        if($result) {
            return "success";
        } else {
            return "failure";
        }
    }
}

在下面,我正在显示此项目中使用的js文件...

manufacturer.js

function addManufacturere() {
    var manufacturer_name = $('#manufacturer_name').val().trim();
    if(manufacturer_name == '') {
        alert("Please input manufacturere name");
    } else {
        $.ajax({
            'url':'services/add_manufacturer.php',
            method: "POST",
            data: {'name' : manufacturer_name},
            success: function(data) {
                switch(data) {

                    case 'success':
                            var msg = '<div class="alert alert-success text-center">';
                                msg += '<strong>Success!</strong> Manufacturer entry added successfully.';
                                msg += '</div>';
                            break;
                    case 'error':
                            var msg = '<div class="alert alert-danger text-center">';
                                msg += '<strong>Failed!</strong> Something went wrong, Please try again later.';
                                msg += '</div>';
                            break;
                    case 'duplicate':
                            var msg = '<div class="alert alert-warning text-center">';
                                msg += '<strong>Warning!</strong> Entry already exist.';
                                msg += '</div>';
                            break;
                }
                $('#alerts').html(msg);
                $("#alerts").show();
                $("#alerts").show().delay(5000).fadeOut();
            }
        });
    }
}

我的add_manufacturer.php是我的服务,用于在添加时插入制造商的值,然后提供错误错误(正在检查类)。请帮助我解决错误。

add_manufacturer.php     

require '../vendor/autoload.php';

$manufacturer = new Manufacturer();

echo $manufacturer->insert(["name"=>$_REQUEST["name"]]);

1 个答案:

答案 0 :(得分:0)

要使用$ _REQUEST变量,您必须具有html或virtual formData()中的表单,该表单的方法等于GET和POST。您正在使用$ _REQUEST []无法访问的json格式数据结构。您可以通过将Manufacturer.js修改为-

function addManufacturere() {
var manufacturer_name = $('#manufacturer_name').val().trim();
if (manufacturer_name == '') {
    alert("Please input manufacturere name");
} else {
    var form = new FormData();
    form.append('name', manufacturer_name);
    $.ajax({
        'url': 'services/add_manufacturer.php',
        dataType: 'text',
        type: "POST",
        data: form,
        success: function (data) {
            switch (data) {

                case 'success':
                    var msg = '<div class="alert alert-success text-center">';
                    msg += '<strong>Success!</strong> Manufacturer entry added successfully.';
                    msg += '</div>';
                    break;
                case 'error':
                    var msg = '<div class="alert alert-danger text-center">';
                    msg += '<strong>Failed!</strong> Something went wrong, Please try again later.';
                    msg += '</div>';
                    break;
                case 'duplicate':
                    var msg = '<div class="alert alert-warning text-center">';
                    msg += '<strong>Warning!</strong> Entry already exist.';
                    msg += '</div>';
                    break;
            }
            $('#alerts').html(msg);
            $("#alerts").show();
            $("#alerts").show().delay(5000).fadeOut();
        }
    });
}

}

相关问题