2016-02-03 32 views
1

为什么它是我的代码不起作用?也许我想念一些东西。更新文本值与数据库在codeigniter中的ajax

这里是我的代码

查看admin_page.php

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

<script type="text/javascript"> 

// Ajax post 
    $(document).ready(function() { 

    $(".submit").click(function(event) { 

    event.preventDefault(); 
    var message = $("input#l_message").val(); 

    jQuery.ajax({ 
    type: "POST", 
    url: "<?php echo base_url(); ?>" + "admin/user_data_submit", 
    dataType: 'json', 
    data: {l_message: message}, 
    success: function(res) { 
    if (res) 
    { 
    // Show Entered Value 
    jQuery("div#msg").show(); 
    jQuery("div#msg").html(res..message); 
    } 
    } 
    }); 

}); 
}); 
</script> 
<body> 
<?php echo form_open(); 
    echo form_label('Librarians Message');?> 
    <textarea class="form-control" name="the_librarian" id="l_message"></textarea> 
    <?php echo form_submit('submit', 'Update',"class='submit'");?> 
<?php echo form_close();?> 
</body> 
在我的控制器

admin.php的

public function user_data_submit() 
{ 
    $data = array('message' => $this->input->post('l_message'), 
); 
    $this->home_admin_database->librarian_msg_insert($data); 
    //Either you can print value or you can send value to database 
    echo json_encode($data); 
} 

然后在我的模型Home_admin_database.php

public function librarian_msg_insert($data) { 
$message = array(
      'message' => $data, 
     ); 
// Query to insert data in database 
    $this->db->where('lm_id', '1'); 
    $this->db->update('librarians_message', $message); 
    if ($this->db->affected_rows() > 0) { 
    return true; 
    } 
    else { 
    return false; 
    } 
    } 

当我点击更新按钮时什么也没有发生,并且页面刷新而不改变数据库。请帮我...

我想不那么刷新页面成功后显示一条消息来更新数据库..

+0

您是否使用tinymce作为textarea? –

+0

在你的阿贾克斯更改“类型”方法:“POST” – killstreet

+0

另请检查浏览器中的网络选项卡。检查是否显示任何错误。 – killstreet

回答

1

更换

var message = $("input#l_message").val(); 

var message = $("textarea#l_message").val(); 

那么它应该工作

+1

不工作sir kumar,我试图在jQuery.ajax之前放置alert('test'),然后将jQuery.ajax作为注释。当我点击按钮的弹出窗口显示,但如果我删除了jQuery.ajax作为评论什么都没有发生,我的页面刷新然后没有改变我的数据库... –

+0

@MGBC jQuery(“div#味精”)。 ..信息);到jQuery(“div#msg”)。html(res.message);即使我改变它, –

+0

也不起作用。我认为在ajax语法先生有一个问题,我试图把alert();之前jQuery.ajax和删除jQuery.ajax方法,当我点击按钮弹出显示的警告......也许ajax是问题,但不知道如何解决它... –

0

在视图文件中尝试使用

echo form_button('submit', 'Update',"class='submit'"); 

,而不是

echo form_submit('submit', 'Update',"class='submit'"); 

如果上面的工作不正常,试试你的提交事件而不是点击的运气...

同时更换

var message = $("input#l_message").val(); 

var message = $("#l_message").val(); 

=>另一个步骤是使用

<form Method="Post" class="submit_form"> 

代替

echo form_open(); 

或通过在文档加载jQuery的删除表单action属性

$(".submit_form").submit(function(event) {...});为Ajax调用

+0

我试图改变但不工作.. –

+0

我已经做了一些编辑我的答案..请尝试...祝你好运 –

+0

我试过,但没有发生,即使我改变它提交。有没有什么办法可以像提醒一样来追踪问题? –

0

你好,我是古ESS您使用TinyMCE的,TinyMCE的不能获得价值一样,你应该添加 获得价值

tinyMCE.triggerSave(); 

那么请改变你的JavaScript

<script type="text/javascript"> 

// Ajax post 
    $(document).ready(function() { 

    $(".submit").click(function(event) { 

    event.preventDefault(); 
    tinyMCE.triggerSave(); 
    var message = $("#l_message").val(); 

alert(message) //please see is it right value or not ! 

    jQuery.ajax({ 
    type: "POST", 
    url: "<?php echo base_url(); ?>" + "admin/user_data_submit", 
    dataType: 'json', 
    data: {l_message: message}, 
    success: function(res) { 
    if (res) 
    { 
    // Show Entered Value 
    jQuery("div#msg").show(); 
    jQuery("div#msg").html(res..message); 
    } 
    } 
    }); 

}); 
}); 
</script> 

希望使用TinyMCE的这种帮助别人,

+0

不工作,先生,错误是GET http://localhost/nmsc/js/jquery.min.js是否有任何jQuery的问题? –

0

更改查看的编码代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#submit").click(function(){ 
      // get all post from form with id form-msg 
      dataString = $("#form-msg").serialize(); 
      $.ajax({ 
      type:"POST", 
      url:"<?php echo base_url(); ?>index.php/admin/user_data_submit", 
      //parsing data to your controller 
      data:dataString, 

      success:function (data) { 
       // Show Entered Value 
      $("div#msg").show(); 
      $("div#msg").html(data); 
       alert('Success'); 
      } 

      }); 

     return false; 
     }); 
    }); 
</script> 

<body> 

    <?php 
    // add form id 
    echo form_open('',"id='form-msg'"); 
    echo form_label('Librarians Message');?> 
    <textarea class="form-control" name="the_librarian" id="l_message"></textarea>  
    <?php 
    // add button 
    echo form_button('submit', 'Update',"id='submit'"); 
    ?> 
    <?php echo form_close();?> 

</body>