我有一个要提交到我的codeigniter数据库的数据的javascript数组:
[
{
"name": "title",
"value": "myTitle"
},
{
"name": "content",
"value": "myContent."
}
]
我想将此数据提交给codeigniter,并让它更新数据库。 请注意,这不是来自表单的数据,因此我不能仅使用典型的代码点火器form_open()/ serialize()方法 。 我正在使用ajax发布并动态构建数据:
var submissionData = [];
instanceFields.each(function(index){
var $thisField = $(this);
var thisData = {};
thisData.name =$thisField.attr('data-name');
thisData.value = $thisField.text();
submissionData.push(thisData);
});
var submissionString = {arr: JSON.stringify(submissionData)};
var submissionURL = baseURL + 'instances/edit';
$.ajax({
type: "POST",
url: submissionURL,
data: submissionString,
success: function(data){
console.log("success:",data);},
failure: function(errMsg) {
console.error("error:",errMsg);
}
通常,对于从表单发布的数据,我可以在代码点火器中像这样访问它:
$this->input->post('title')
但是,如果我在这里回显,则会得到一个空字符串。
然后,我将像这样插入数据:
$data = array(
'title' => $this->input->post('title'),
'content' => $this->input->post('content'),
);
return $this->db->insert('extra_instances', $data);
如果我解码JSON并进行var转储,则如下所示:
success: array(5) {
[0]=>
object(stdClass)#19 (2) {
["name"]=>
string(5) "title"
["value"]=>
string(21) "myTitle"
}
[1]=>
object(stdClass)#20 (2) {
["name"]=>
string(7) "content"
["value"]=>
string(238) "myContent"
}
}
我该如何修改才能插入数据库?
原生js.ajax内存溢出 javascript - 代码点火器-如何使用jQuery向数据库提交ajax javascript对象 - 堆栈内存溢出...