我尝试将数组发送到控制器,将其传递给模型并获得返回(确保条目成功输入到数据库中)。我可以在DBase中正确添加它,但是我收到了返回错误并且无法弄清楚原因。这段代码可以工作,但是如果我在outpuString下面移动json_encode行,我会收到一个错误(但仍会添加到dbase)。如何验证记录是否已输入?
查看JQuery代码:
function addSongToOndeck(songID, userID) {
var controllerURL = "<? echo site_url("/getcomps/entercompprocessor/") ?>/";
$.ajax({
url: controllerURL,
type:'POST',
data: {
songID: songID,
userID: userID
},
dataType: 'json',
success: function(outputString){
$('#returnMessage').append(outputString);
},
error: function( xhr, status, errorThrown ) {
alert( "Sorry, there was a problem!" );
console.log( "Error: " + errorThrown );
console.log( "Status: " + status );
console.dir( xhr );
},// End of success function of ajax form
}); // End of ajax call
}
我的控制器:
function entercompprocessor()
{
echo json_encode("Successfully added to competition");
$data = array(
'song_id' => $this->input->post('songID'),
'user_id' => $this->input->post('userID')
);
$returned['result']= $this->competitions_model->putOnDeck($data);
}
我的模特:
function putOnDeck($dataArr)
{
$query = $this->db->insert('on_deck', $dataArr);
if($query->affected_rows() > 0)
{
return "added!";
}
else
{
return "failed!";
}
}
答案 0 :(得分:0)
将您的型号代码更改为以下内容:
function putOnDeck($dataArr)
{
if($this->db->insert('on_deck', $dataArr))
{
return "added!";
}
else
{
return "failed!";
}
}
然后在$ outputstring声明之后移动你的json_encode。 codeigniter中的affected_rows()函数正在查看受先前执行的查询影响的现有行。由于您要插入新行,因此返回的值永远不会是&gt; 0