这是我提交表单的实现代码。我想通过ajax在数据库中插入表数据值的位置。但它不是控制器。
$('#submit').click(function(){
var TableData = new Array();
$('#cart_details tr').each(function(row, tr){
TableData[row]={
"productname" : $(tr).find('td:eq(0)').text()
, "quantity" :$(tr).find('td:eq(1)').text()
, "unit" : $(tr).find('td:eq(2)').text()
, "unit_rate" : $(tr).find('td:eq(3)').text()
}
});
TableData.shift();
//TableData = $.toJSON(TableData);
var TableData = JSON.stringify(TableData);
alert(TableData);
var followurl='<?php echo base_url()."index.php/purchase/save_product";?>';
$.ajax({
type: "POST",
url:followurl,
data: TableData,
datatype : "json",
cache: false,
success: function (data) {
alert("dsad"+data);
}
});
});
当我stringify tabledata数组输出就像这样..
[{"productname":"Copper Sulphate","quantity":"1","unit":"1","unit_rate":"100"},
{"productname":"Hypta Hydrate","quantity":"1","unit":"1","unit_rate":"100"}]
我的问题是它为什么不去控制器?这是因为数组对象还是其他什么?
Tabledata是javascript对象数组。我是对的吗?
答案 0 :(得分:0)
使用
$.ajax({
而不是
$.post({
使用此代码
$.ajax({
type: "POST",
url:followurl,
data: {TableData : TableData},
cache: false,
success: function (data) {
alert("dsad"+data);
}
});
查看文档jquery.post
$.post
的语法是
$(selector).post(URL,data,function(data,status,xhr),dataType)
您不必定义类型
但是你在$.ajax
混合$.post
这是$.ajax
函数语法
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
然后将$.post
更改为$.ajax
并尝试
答案 1 :(得分:0)
正如您可以在documentation中阅读的那样,您可以将对象传递给data
。我认为如果你采用这种方法,你会让事情变得更容易和简单。
...
//TableData = $.toJSON(TableData); NO!!!
//var TableData = JSON.stringify(TableData); NO!!!
//alert(TableData);
var followurl='<?php echo base_url()."index.php/purchase/save_product";?>';
$.ajax({
type: "POST",
url:followurl,
data: {
dataTable: TableData
},
datatype : "json",
cache: false,
success: function (data) {
alert(data);
}
});
});
index.php/purchase/save_product
$data = $_POST["dataTable"];
echo $data[0]["productname"];// Sending back the productName of the first element received.
die();
如您所见,如果您遵循此方法,则可以非常轻松地访问index.php/purchase/save_product
文件中的数据。
希望它有所帮助。
答案 2 :(得分:0)
嗨看起来您正在使用某些CMS或Framework。您能否告诉我们您正在使用的框架或CMS。然后我就能解决这个问题。看起来您正在使用Code Ignitor。如果它如此,那么我希望这会帮助你
$.post( "<?php echo base_url();?>index.php/purchase/save_product", function(data) {
alert( "success" );
}, 'html') // here specify the datatype
.fail(function() {
alert( "error" );
})
在您的情况下,您的ajax调用必须看起来像
var followurl="<?php echo base_url();?>index.php/purchase/save_product";
$.ajax({
type: "POST",
url:followurl,
data: TableData,
datatype : "json",
cache: false,
success: function (data) {
alert("dsad"+data);
}
});
});
错误似乎在您的 followUrl 中,请尝试在我的代码中使用