我尝试将一个日期时间(2013-03-12 09:43:09)字符串从表单通过ajax发送到db。我使用了以下的JS
$.ajax({
type: "POST",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: {
end: $('#endtime').val()
},
url: 'index.php?option=com_sprojectfree&view=checkin&task=saveSlot&format=raw',
success: function(data) {
console.log(data);
}
});
url指向我的controller.php中的方法saveSlot
public function saveSlot ()
{
$input = JFactory::getApplication()->input;
$data = new stdClass();
$data->end = $input->get('end');
db = JFactory::getDBO();
$result = $db->insertObject( '#__spf_chunks', $data, 'id' );
...
}
数据对象如下所示:
stdClass Object
(
[end] => 2013-03-12095730
)
和这样的POST源:
end=2013-03-12+09%3A57%3A30
我尝试了JS中所有的charactersets,urldecode()和encodeURIComponent()组合,但没有给我正确的字符串:back将它保存在db中。我能做什么?提前谢谢。
答案 0 :(得分:1)
试试这个
echo urldecode("2013-03-12+09%3A57%3A30");
在php端解码。
通常,当您调用ajax时,无需提及内容类型。
您可以像这样传递
,而不是将数据作为对象传递var data = "end="+$('#endtime').val();
data: encodeURIComponent (data)
在控制器中,您可以通过JRequest::getVar('end');
希望有所帮助