我正在开发书签功能,用户点击jQueryui按钮,然后将某些信息发送到数据库。但我没有使用表单,因为没有用户输入的信息。
我从会话数据中提取用户ID,我正在发送URI段(URL的一部分)
使用codeigniter / php。
我正在试图弄清楚要放在ajax / post函数的数据部分中的内容,因为没有输入任何表格/没有数据,以及如何处理控制器的“提交”部分。
控制器
function addBookmark(){
if ($this->input->post('submit')) {
$id = $this->session->userdata('id');
$bookmark = $this->uri->segment(3, 0);
$this->bookmarks_model->postBookmark($id, $bookmark);
}
}
模型
function postBookmark() {
$data = array(
'user_id' => $user_id,
'bookmark_id' => $bookmark,
);
$this->db->insert('bookmarks', $data);
}
HTML
<button class="somebutton">Add bookmark</button>
的jQuery
$('.somebutton').click(function() {
$.ajax({
url: 'controller/addBookmark',
type: 'POST',
data: ???,
success: function (result) {
alert("Your bookmark has been saved");
}
});
});
答案 0 :(得分:8)
您的问题是您正在检查submit
args中的POST
密钥。您可以通过发送data: {submit:true}
或删除if语句并仅处理POST请求来伪造它
$('.somebutton').click(function() {
$.ajax({
url: 'controller/addBookmark',
type: 'POST',
data: {'submit':true}, // An object with the key 'submit' and value 'true;
success: function (result) {
alert("Your bookmark has been saved");
}
});
});
答案 1 :(得分:0)
使用.get()
$.get('controller/addBookmark',function(data){
alert('Your bookmark has been saved');
});
使用.post()
$.post('controller/addBookmark', function(data) {
alert('Your bookmark has been saved, The contents of the page were:' + data);
});
答案 2 :(得分:0)
要发送到服务器的数据。它被转换为查询字符串if 还不是一个字符串。它附加到GET请求的URL。
如果您不知道要为数据添加什么,可能您应该删除该选项?在控制器函数addBookmark()中,您可以通过删除if检查来减少代码。试试这个,看看它是否适合你。