简体   繁体   English

使用ajax显示codeigniter数据库错误

[英]displaying codeigniter database error using ajax

I get error 500 internal server error 我收到错误500内部服务器错误

I want to display database error to view, so far i can produce the response only in chrome network response 我想显示数据库错误以供查看,到目前为止,我只能在chrome网络响应中生成响应

Model classes, I omit the constructor 模型类,我省略了构造函数

class Size_mdl extends MY_Model {      
        public function create($data) {
           return $this->insert($data);  
        }
    }

class MY_Model extends CI_Model {
 public function insert($data) {
        $success = $this->db->insert($this->table_name, $data);
        if ($success) {
            return true;
        } else {
            $msg = $this->db->error();
            return $msg;
        }
    }

controller 控制者

$data['test_r'] = var_dump($this->Size_mdl->create($data));           
$this->load->view('size/create_size_view',$data);

View 视图

This is Welcome.php, the most outer with header and footer 这是Welcome.php,最外面是页眉和页脚

    <div class="page">
        <!-- Page Header-->
        <header class="page-head"></header>
         <!-- Page Content-->
        <main id="main_content" class="page-content"></main>
         <!-- Page Footer-->
         <footer class="page-foot section-60 section-xl-150 text-center text-lg-left">

Inside that page i have create_size_view loaded to main_content, previously it was homepage, bunch of stuff. 在该页面内,我已将create_size_view加载到main_content,以前是主页,一堆东西。

<head>
    <style>

    </style>
</head>
<body>
    <div id="container">
        <div id="content">
            <h5>Create New Size</h5>
            <div id="inner_container">
                <div id="create_part">
                    <?php
                    if (isset($test_r)){
                        echo $test_r;
                    }?>
                    <?php echo validation_errors(); ?>
                    <?php
                    $attributes = array('id' => 'create_size_form');
                    echo form_open("size/create", $attributes);
                    ?>
                    <p>
                        <?php echo lang('size_short_name_label', 'short_name'); ?>
                        <?php 
                            $short_name = array(
                                'name'          => 'short_name',
                                'id'            => 'short_name',
                                'maxlength'     => '100'
                            );
                            echo form_input($short_name);?>
                    </p>
                    <p>
                        <?php echo lang('size_long_name_label', 'long_name'); ?>
                        <?php 
                            $long_name = array(
                                'name'          => 'long_name',
                                'id'            => 'long_name',
                                'maxlength'     => '100',
                            );
                            echo form_input($long_name);?>
                    </p>
                    <p>
                        <?php echo form_submit('submit', lang('create_size_submit_btn')); ?>
                    </p>
                    <?php echo form_close(); ?>
                </div>
            </div>
        </div>
    </div>
    <script>
        $('form#create_size_form').submit(function (e) {

            var form = $(this);

            e.preventDefault();

            $.ajax({
                type: "POST",
                url: "<?php echo site_url('size/create'); ?>",
                data: form.serialize(), // <--- THIS IS THE CHANGE
                dataType: "html",
                success: function (result) {
                    $('#main_content').html(result);
                },

            });

        });

    </script>
</body>

Now i need the response for failed insert appear replacing main_content welcome.php or its children div from create_size_view.php. 现在,我需要响应来解决插入失败的问题,该问题似乎取代了create_size_view.php中的main_content welcome.php或其子级div。 I can produce the successful insert by reloading create_size_view.php 我可以通过重新加载create_size_view.php来产生成功的插入

change ajax url property. 更改ajax url属性。 use url like "/size/create" dont use whith domain like "www.site.com/size/create"; 使用“ / size / create”之类的网址,不要使用“ www.site.com/size/create”之类的域名;

use text for binding data 使用文本绑定数据

$.ajax({
                type: "POST",
                url: "<?php echo site_url('size/create'); ?>",
                data: form.serialize(), // <--- THIS IS THE CHANGE
                dataType: "html",
                success: function (result) {
                    $('#main_content').text(result);
                }
            });

In Codeigniter predefined error handler for MySQL. 在Codeigniter中,针对MySQL的预定义错误处理程序。 if error encountered Codeigniter throw HTML content with 500 server site error for avoiding this page 500 status code put Codeigniter ENVIRONMENT in production then your code will work properly. 如果遇到错误,Codeigniter会抛出HTML内容,并带有500个服务器站点的错误,以避免出现此页面500状态代码将Codeigniter ENVIRONMENT投入生产,那么您的代码将正常运行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM