首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图插入数据库,但什么也没有发生

试图插入数据库,但什么也没有发生
EN

Stack Overflow用户
提问于 2015-12-18 17:57:55
回答 3查看 100关注 0票数 1

我试图通过AJAX提交一个表单,将我的数据插入数据库,当我按submit按钮时,数据不会被插入。

代码语言:javascript
复制
            $invoice_number = rand(0, 99999);
        $TransactionInsert = array(
            'date'           => $this->input->post('funds_arrival_date'),
            'description'    => 'Payment against invoice #' . '<a href="/reservations/database/edit/' . $this->input->post('reservations') . '">' . $this->input->post('reservations') . '</a>' . ' via ' . '"' . $this->input->post('paid_to') . '"' . ' method',
            'product'        => $this->input->post('reservations'),
            'credit'         => $this->input->post('actual_amount'),
            'credit_cur'     => $this->input->post('currency_name'),
            'credit_cur_val' => (int)$this->input->post('currency_value'),
            'debit'          => 0,
            'parent_invoice' => $invoice_number
        );
        $this->db->insert('transactions', $TransactionInsert);

The jQuery

代码语言:javascript
复制
//Finish the process, POST AJAX...
    $('button[name=submit-transaction]').live("click", function (e) {
        var a = getTransactionValues();
        e.preventDefault();
        $.ajax({
            url: '/transactions/submit',
            type: 'POST',
            data: {
                reservations:       a.reservations,
                amount:             a.amount,
                currency_value:     a.currency_value,
                currency_name:      a.currency_name,
                actual_amount:      a.actual_amount,
                actual_remaining:   a.actual_remaining,
                funds_arrival_date: a.funds_arrival_date,
                paid_to:            a.paid_to,
                checkbox:           a.checkbox
            },
            success: function (data) {
                location.reload();
            },
        });
    });
}

    /*
*   Gathering values and getting them
*/
function getTransactionValues() {
    var o = {};
    o.parent_id           = $('.dbase_id').val();
    o.reservations        = [];
    $('#custom-headers option:selected').each(function (i, selected) {
        o.reservations[i] = $(selected).val();
    });
    o.amount              = $('input[name=amount-price]').val();
    o.currency_value      = $('input[name=currency-value]').val();
    o.currency_name       = $('.currency_appendto option:selected').html();
    o.actual_amount       = $('input[name=actual-amount]').val();
    o.actual_remaining    = $('input[name=actual-remaining]').val();
    o.funds_arrival_date  = $('input[name=funds-arrival]').val();
    o.paid_to             = $('.paidto option:selected').html();
    o.checkbox            = $('.multi-transaction:checked').map(function () {
        return this.value
    }).get();
    return o;
}

我不知道这个页面没有显示什么错误,数据也没有提交到数据库

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-18 18:03:36

我可能错了,但您的o.reservations = [];部件似乎返回了一个数组,在您的PHP代码中,您没有循环它并试图插入一个大容量的$this->input->post('reservations');,您需要循环它或访问第一个/第二个键。任何您需要插入的内容,比如$this->input->post('reservations')[0];,尝试:

代码语言:javascript
复制
        $TransactionInsert = array(
        'date'           => $this->input->post('funds_arrival_date'),
        'description'    => 'Payment against invoice #' . '<a href="/reservations/database/edit/' . $this->input->post('reservations')[0] . '">' . $this->input->post('reservations')[0] . '</a>' . ' via ' . '"' . $this->input->post('paid_to') . '"' . ' method',
        'product'        => $this->input->post('reservations')[0],
        'credit'         => $this->input->post('actual_amount'),
        'credit_cur'     => $this->input->post('currency_name'),
        'credit_cur_val' => (int)$this->input->post('currency_value'),
        'debit'          => 0,
        'parent_invoice' => $invoice_number
    );
票数 1
EN

Stack Overflow用户

发布于 2015-12-18 18:15:53

我还看到在url中的ajax调用中基本url是不正确的,我将共享我通常使用的ajax调用

我假设您正在使用submit方法调用事务控制器。

代码语言:javascript
复制
    $("#your_html_item_id").bind("click",function()
    {
        var target_url = '<?php echo(base_url()."transactions/submit") ; ?>';
        $.ajax
        (
        {
            url : target_url,
            type: "POST",
            cache: false,
            data: 
            {
                key1:       value1,
                key2:       value2,
                key3:       value3
            },
            success: function(data)
            {
                alert(1);
            },
            error: function(jqXHR, textStatus, errorThrown)
            {
                alert("error during database query");
            }
        });

    });

如果您看到一个带有1的消息框,这意味着ajax调用是成功的。

票数 1
EN

Stack Overflow用户

发布于 2015-12-18 18:03:41

您应该检查php错误日志和数据库错误日志。

如果你不知道在哪里能找到它..。你可以搜索它:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34361375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档