我有一个页面,用户可以在其中撰写有关某些网站的评论。 我需要将此数据发布到我的Codeigniter控制器,该控制器使用模型函数将数据插入数据库。 一切正常,直到我添加jquery,现在它没有发布,似乎根本没有去控制器。任何帮助解决这个问题将不胜感激。谢谢。
HTML
<table id="revForm">
<tr>
<td>Site reviewed:</td>
<td><input readonly type="text" id="site" name="profile" value="<?php echo $sitename; ?>"></td>
</tr>
<tr>
<td>Name:</td>
<td> <input type="text" id="name" name="name" value="Enter name"> </td>
</tr>
<tr>
<td>Message:</td>
<td><textarea row="6" column="40" id="message" name="message" value="message"></textarea></td>
</tr>
<tr>
<td>Rate this site</td>
<td>
<div>
<input name="rating" type="radio" value="1" class="star"/>
<input name="rating" type="radio" value="2" class="star"/>
<input name="rating" type="radio" value="3" class="star"/>
<input name="rating" type="radio" value="4" class="star"/>
<input name="rating" type="radio" value="5" class="star"/>
</div>
</td>
</tr>
</table><br>
<button id="submitReview2">Submit</button><br/>
控制人员'评论'
public function addReview() {
$this->load->helper('form');
if ($this->input->post("message")!="") {
$this->reviewsMod->addReview($this->input->post('profile'),
$this->input->post('name'),
$this->input->post('message'),
date('d/m/Y'),
$this->input->post('rating'));
$data['sitename'] = $this->input->post('profile');
$this->load->view('shared/header');
$this->load->view('profile', $data );
$this->load->view('shared/footer');
}
else {
$this->load->view('shared/header', $session);
$this->load->view('profile', $data);
$this->load->view('shared/footer');
}
}
的jQuery
$('#submitReview2').click(function() {
var profile = $('#site').val();
var name = $('#name').val();
var message = $('#msg').val();
var rating = $('#rating').val();
var msgData = {
'profile':profile,
'name':name,
'message':message,
'rating':rating
}
var base_url = '<?php echo base_url(); ?>';
$.ajax ({
type: 'POST',
url: base_url+'reviews/addReview',
data: msgData,
success:
function(){
$('#revForm').html("<div id='success'></div>")
$('#success').html("Your review has been submitted")
.fadeIn(1500);
}
});
return false;
模型功能
public function addReview($profile, $name, $message, $stamp, $rating) {
$this->setValues($profile, $name, $message, $stamp, $rating);
$this->db->insert('messages', $this);
}
答案 0 :(得分:0)
您是否为base_url()函数加载了url帮助器?
$this->load->helper('url');
同时使用chrome并使用developertools检查“console”和“network”。
答案 1 :(得分:0)
我认为JQuery
帖子不是这样的。
您需要使用Jquery .submit()
或.post()
方法。
请查看Jquery post()
和submit()
答案 2 :(得分:0)
首先为你的ajax请求指定错误句柄,这样你就可以看到错误发生后发生了什么:
$.ajax({
//
// Other parameters
//
success: function (result, textStatus, jqXHR) {
// Some code
},
error: function (jqXHR, textStatus, errorThrown) {
// Some code to debbug e.g.:
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
});
还开始使用某种javascript debbuging工具(取决于你正在使用的浏览器),就像某人说Chrome开发人员工具(在网站上按f12并转到网络标签)在Chrome或Firefox中的Firebug甚至是更复杂的桌面应用程序,如Fiddler
如果您仍然遇到发布数据的问题,请向我们提供有关您遇到的错误的更多信息