使用codeigniter中的ajax将文本值更新到数据库

时间:2016-02-03 07:58:22

标签: jquery ajax codeigniter

为什么我的代码不起作用?也许我想念一些东西。

这是我的代码

查看 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;
   }
  } 

当我单击更新按钮时,没有任何事情发生,页面刷新而不更改数据库。请帮帮我......

我想更新数据库而不刷新页面,然后在成功后显示消息..

4 个答案:

答案 0 :(得分:1)

替换

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

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

然后它应该工作

答案 1 :(得分: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();

=&GT;另一个步骤是使用

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

而不是

echo form_open();

或通过jquery在文档加载

上删除表单操作属性

和 用于ajax调用的$(".submit_form").submit(function(event) {...});

答案 2 :(得分:0)

你好我猜你使用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,

答案 3 :(得分: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>