【发布时间】:2015-08-20 14:49:20
【问题描述】:
我有一个要提交到我的 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"
}
}
如何修改它以插入数据库?
【问题讨论】:
-
为什么所有这些循环/推送的东西?为什么不在表单对象上只使用
.serialize()? -
没有表格。我正在使用带有“contenteditable”属性的 html 字段并动态获取它们的值。
标签: javascript php ajax codeigniter post