在Codeigniter中插入时出现内部服务器错误

时间:2018-05-30 14:31:24

标签: php jquery ajax codeigniter-3

这是我在这个论坛上提出的第一个问题,我真的需要帮助来解决/修复问题。

我正在使用Codeigniter处理一个简单的CRUD应用程序,这部分代码运行得很好,直到我添加更多功能。

问题在于: 我从用户输入向数据库添加了3个项目,它没有错误,但是当我添加更多输入字段以从用户获得更多输入时,当我点击"时,我最终得到内部服务器错误。添加项目"按钮。

以下是查看代码:

  <?php
            if ($_SESSION[AppStrings::$NOMENCLATURE] != AppStrings::$SERVICE) {
                if ($_SESSION[AppStrings::$SIZE] != AppStrings::$MICRO) {
                    ?>
                    <form data-toggle="validator" class="form-horizontal form-material" method="post" action="#" onsubmit="addProduct(); return false;">



                        <div class="form-group m-t-40">
                            <div class="col-xs-12">
                                <div class="input-group">
                                    <div class="input-group-addon"><i class="mdi mdi-barcode-scan"></i></div>
                                    <input class="form-control" type="text" required="" placeholder=" <?= $nomenclature ?> Code" id="product_code" required/>
                                </div>
                            </div>
                        </div>


                        <div class="form-group m-t-40">
                            <div class="col-md-6">
                                <input class="form-control" type="text" required="" placeholder="<?= $nomenclature ?> Name" id="product_name" required/>
                            </div>

                            <div class="col-md-6">
                                <div class="input-group">
                                    <div class="input-group-addon"><i class="mdi mdi-currency-ngn"></i></div>
                                    <input class="form-control" type="number" required="" placeholder=" <?= $nomenclature ?> Cost Price" name="product_cp" id="product_cp" required/>
                                </div>
                            </div>
                        </div>


                        <div class="form-group m-t-40">
                            <div class="col-md-6">
                                <div class="input-group">
                                    <div class="input-group-addon"><i class="mdi mdi-currency-ngn"></i></div>
                                    <input class="form-control" type="number" required="" placeholder=" <?= $nomenclature ?> Selling Price" name="product_sp" id="product_sp" required/>
                                </div>
                            </div>


                        </div>


                        <div class="form-group m-t-40">
                            <div class="col-md-6">
                                <textarea class="form-control" type="text" required="" placeholder=" <?= $nomenclature ?> Description" id="product_des" required/></textarea>
                            </div>
                            <div class="col-md-6">
                                <input class="form-control" type="text" required="" placeholder=" <?= $nomenclature ?> Expiry Date" id="product_exp" onfocus="(this.type = 'date')" onblur="if (this.value == '') {
                                                    this.type = 'text'
                                                }" required/>
                            </div>
                        </div>


                        <div class="form-group m-t-40">
                            <div class="col-md-6">
                                <div class="input-group">
                                    <div class="input-group-addon"><i class="mdi mdi-clipboard-account"></i></div>
                                    <select name="supplier" class="form-control form-control-line" type="text" id="supplier" placeholder="<?= $nomenclature ?> Supplier"> 
                                        <option value="">Supplier</option>
                                        <?php
                                        foreach ($suppliers as $supplier) {
                                            ?>
                                            <option value='<?= $supplier[DbStrings::$SUPPLIER_NAME] ?>'><?= $supplier[DbStrings::$SUPPLIER_NAME] ?></option>
                                        <?php }
                                        ?>
                                    </select>
                                </div>
                            </div>

                            <div class="col-md-6">
                                <div class="input-group">
                                    <div class="input-group-addon"><i class="mdi mdi-chevron-double-up"></i></div>
                                    <select name="department" class="form-control form-control-line" type="text" id="department" placeholder="<?= $nomenclature ?> Department"> 
                                        <option value="">Department</option>
                                        <?php
                                        foreach ($departments as $department) {
                                            ?>
                                            <option value='<?= $department[DbStrings::$DEPARTMENT_NAME] ?>'><?= $department[DbStrings::$DEPARTMENT_NAME] ?></option>
                                        <?php }
                                        ?>
                                    </select>
                                </div>
                            </div>
                        </div>
                        <div class="form-group m-t-40">
                            <div class="col-md-6">
                                <div class="input-group">
                                    <div class="input-group-addon"><i class="mdi mdi-chevron-up"></i></div>
                                    <select name="sub_departments" class="form-control form-control-line" type="text" id="sub_department" placeholder="<?= $nomenclature ?> Department"> 
                                        <option value="">Sub-Department</option>
                                        <?php
                                        foreach ($sub_departments as $sub_department) {
                                            ?>

                                            <option value='<?= $sub_department[DbStrings::$SUB_DEPARTMENT_NAME] ?>'><?= $sub_department[DbStrings::$SUB_DEPARTMENT_NAME] ?></option>
                                        <?php }
                                        ?>
                                    </select>
                                </div>
                            </div>

                            <div class="col-md-6">
                                <div class="input-group">
                                    <div class="input-group-addon"><i class="mdi mdi-cash"></i></div>
                                    <input class="form-control" type="number" placeholder=" <?= $nomenclature ?> Vat" id="vat"/>
                                </div>
                            </div>
                        </div>


                        <div class="form-group text-center m-t-20">
                            <div class="col-xs-12">
                                <button class="btn btn-primary btn-login btn-lg btn-block text-uppercase waves-effect waves-light" type="submit" name="product-btn">Add <?= $nomenclature ?></button>
                            </div>
                        </div>
                    </form>

                    <?php
                }
            }
            ?>

这是AJAX代码:

function addProduct() {
var product_code = $("#product_code").val();
var product_name = $("#product_name").val();
var product_cp = $("#product_cp").val();
var product_sp = $("#product_sp").val();
var product_des = $("#product_des").val();
var product_exp = $("#product_exp").val();
var supplier = $("#supplier").val();
var department = $("#department").val();
var sub_department = $("#sub_department").val();
var vat = $("#vat").val();

var addUrl = "home/addproduct";
addUrl += "/" + product_code;
addUrl += "/" + product_name;
addUrl += "/" + product_cp;
addUrl += "/" + product_sp;
addUrl += "/" + product_des;
addUrl += "/" + product_exp;
addUrl += "/" + supplier;
addUrl += "/" + department;
addUrl += "/" + sub_department;
addUrl += "/" + vat;

//

$.ajax({type: 'GET', url: addUrl, data: {},
    success: function (result) {
        $.alert({
            content: result
        });
        $("#product_code").val("");
        $("#product_name").val("");
        $("#product_cp").val("");
        $("#product_sp").val("");
        $("#product_des").val("");
        $("#product_exp").val("");
        $("#supplier").val("");
        $("#department").val("");
        $("#sub_department").val("");
        $("#vat").val("");
        location.reload();
    },
    error: function (xhr, status, error) {
        $.alert({
            content: 'Could not complete the process. ' + error
        });
    }
});

}

这是控制器功能:

 private function addproduct($product_code = null, $product_name = null, $product_cp = null, $product_sp = null, $product_des = null, $product_exp = null, $supplier = null, $department = null, $sub_department = null, $vat = null) {

    if (isset($product_code, $product_name, $product_cp, $product_sp, $product_des, $product_exp, $supplier, $department, $sub_department, $vat)) {

        $email = $_SESSION[DbStrings::$EMAIL];
        $product_code = $this->test_input($product_code);
        $product_name = $this->test_input($product_name);
        $product_cp = $this->test_input($product_cp);
        $product_sp = $this->test_input($product_sp);
        $product_des = $this->test_input($product_des);
        $supplier = $this->test_input($supplier);
        $department = $this->test_input($department);
        $sub_department = $this->test_input($sub_department);
        $vat = $this->test_input($vat);
        $product_exp = strtotime($product_exp);


        $insertedProduct = $this->member->insertProduct($email, $product_code, $product_name, $product_cp, $product_sp, $product_des, $supplier, $department, $sub_department, $vat, $product_exp);



       if ($insertedProduct) {
           echo "Your " . $_SESSION[AppStrings::$NOMENCLATURE] . " has been added succesfully";
        } else {
          echo "There was a problem inserting your " . $_SESSION[AppStrings::$NOMENCLATURE] . ". Please try again.";
       }
    } else {
       echo 'Please fill all fields';
    }
}

这是在发回结果之前进行插入的模型:

public function insertProduct($email, $product_code, $product_name, $product_cp, $product_sp, $product_des, $supplier, $department, $sub_department, $vat, $product_exp) {
    $data = array(
        DbStrings::$PRODUCTID => "",
        DbStrings::$EMAIL => $email,
        DbStrings::$PRODUCT_CODE => $product_code,
        DbStrings::$PRODUCT_NAME => $product_name,
        DbStrings::$PRODUCT_COST => $product_cp,
        DbStrings::$PRODUCT_SELLING => $product_sp,
        DbStrings::$PRODUCT_MARKUP => 9,
        DbStrings::$PRODUCT_DESCRIPTION => $product_des,
        DbStrings::$SUPPLIER => $supplier,
        DbStrings::$DEPARTMENT => $department,
        DbStrings::$SUB_DEPARTMENT => $sub_department,
        DbStrings::$VAT => $vat,
        DbStrings::$STOCK_BALANCE => 1,
        DbStrings::$MIN_LEVEL => 1,
        DbStrings::$MAX_QUANTITY => 1,
        DbStrings::$QUANTITY_SOLD => 1,
        DbStrings::$EXPIRY_DATE => $product_exp,
        DbStrings::$DATE_CREATED => time(),
        DbStrings::$DATE_STOCKED => time()
    );

    return $this->db->insert(DbStrings::$PRODUCTS_TABLE_NAME, $data);
}

我仍然收到来自服务器的错误,并且不知道还能做什么。

纠正上述问题,代码运行正常。我使用:$this->output->enable_profiler(TRUE);我能够看到模型发送到服务器的MySQL查询,当我复制查询并将其粘贴到我的localhost:phpmyadmin时,我被标记为错误,似乎有没有语法错误。

现在这让我感到沮丧,因为我无法解决它。

0 个答案:

没有答案