我试图通过AJAX提交一个表单,将我的数据插入数据库,当我按submit按钮时,数据不会被插入。
$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
//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;
}我不知道这个页面没有显示什么错误,数据也没有提交到数据库
发布于 2015-12-18 18:03:36
我可能错了,但您的o.reservations = [];部件似乎返回了一个数组,在您的PHP代码中,您没有循环它并试图插入一个大容量的$this->input->post('reservations');,您需要循环它或访问第一个/第二个键。任何您需要插入的内容,比如$this->input->post('reservations')[0];,尝试:
$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
);发布于 2015-12-18 18:15:53
我还看到在url中的ajax调用中基本url是不正确的,我将共享我通常使用的ajax调用
我假设您正在使用submit方法调用事务控制器。
$("#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调用是成功的。
发布于 2015-12-18 18:03:41
您应该检查php错误日志和数据库错误日志。
如果你不知道在哪里能找到它..。你可以搜索它:)
https://stackoverflow.com/questions/34361375
复制相似问题