2013-03-10 40 views
1

問題是,當我使用提交時,codeigniter乾淨地處理腳本。但是當我通過ajax傳遞數據時。腳本工作正常。它甚至在我使用print_r時輸出數組。它只是它不更新數據庫。一切都很好,直到activerecord腳本。 這是我的控制器腳本。 (我只是簡化了它)。 我所做的是有一個腳本會創建一個空行。因此,它將檢索將用於保存文章的文章ID。 這是保存文章功能。活動記錄codeigniter不通過Ajax傳遞時更新數據庫

控制器:

function saveArticle(){ 
$this->userarticle_model->trial(); 
}  

型號:

function trial(){ 
     $userid = $this->session->userdata('userid'); 
     $articleId = $this->input->post('article_id'); 
     $articleData = array(
    'sfc_articleAuthor' =>$userid , 
    'sfc_articleTitle' => $this->input->post('article_title'), 
    'sfc_articleContent' => $this->input->post('article_content'), 
    'sfc_articleStatus' => 'saved', 
    'sfc_articleTag' =>$this->input->post('article_tag'), 
    'sfc_articleCategory' => $this->input->post('article_category') 
    ); 
    $this->db->where('sfc_articleId', $articleId); 
    $this->db->update('sfc_articles', $articleData); 
    } 

AJAX: (對不起,我只是複製這個從tutoral)

$(document).ready(function(){ 
    $('.save').click(function() { 

     $('#article_form').hide(0); 
     $('#message').hide(0); 
     var article_title = $('#article_title').val(); 
     var article_tag = $('#article_tag').val(); 
     var article_id = $('#articleId').val(); 
     var article_category = $('#article_category').val(); 
     var article_content = $('#article_form').find('.nicEdit-main').text(); 
     var article_status = 'saved'; 
     var dataString = 'article_title='+ article_title + '&article_tag=' + article_tag + '&article_category=' + article_category + '&article_content=' + article_content + '&article_status=' + article_status; 
     $.ajax({ 
      type : 'POST', 
      url : 'http://localhost/ci_usage/index.php/article/saveArticle', 
      dataType : 'json', 
      data: dataString, 
      success : function(data){ 
       $('#waiting').hide(500); 
       if (data.error === false) 
        $('#article_form').show(10); 
      }, 
      error : function(XMLHttpRequest, textStatus, errorThrown) { 
       $('#article_form').hide(10); 
       $('#article_form').show(3); 
      } 
     }); 
     return false; 
    }); 
}); 

查看:

<?php echo form_open('article/processArticle',array('id'=>'article_form'));?> 

<?php echo validation_errors(); ?> 
<div id="sidebar_options"> 
    <div class="sidebar_title">Article Settings</div> 
    <ul> 
     <li> 
     <label>Tags</label><br /> 
     <input type="text" name="article_tag" size="15" value="<?php echo set_value('article_tag');?>" id="article_tag"/> 
     </li> 
     <li> 
     <label>Category</label><br /> 
     <select name="article_category" id="article_category"> 
      <option value="1">Test Category 1</option> 
      <option value="">Test Category 2</option> 
      <option value="">Test Category 3</option> 
      <option value="">Test Category 4</option> 
     </select> 
     </li> 
     <a href="#"><li>PDF version</li></a> 
    </ul> 
</div> 
<div id="option_panel"> 
<input type="text" name="article_title" size="30" placeholder="Title" value="<?php echo set_value('article_title');?>" id="article_title"/> 
<input type="submit" value="Publish" name="publish" /> 
<input type="button" value="Preview" class="save"/> 
<input type="button" value="Save" class="see"/> 
</div> 

<div id="write_panel" style="width:700px; margin-left:50px; width:800px;"></div> 
<div id="write_area"> 
<textarea name="article_content" id="article_content" style="height:690px; width:800px;" ></textarea> 
<input type="hidden" value="<?php echo $articleId;?>" name="article_id" id="articleId"/> 
</div> 
</div> 

<?php echo form_close();?> 

我真的抓傷我的頭這一點。

回答

0

剛剛得到答案。忘記添加將最後一個變量放入ajax文件的數據字符串中。

相關問題