【问题标题】:Posting data using jQuery $.post() to controller, cant get post values in controller CodeIgniter使用 jQuery $.post() 将数据发布到控制器,无法在控制器 CodeIgniter 中获取发布值
【发布时间】:2015-03-26 09:18:03
【问题描述】:

我正在使用 jQuery $.post() 发布到我的控制器,如下所示:

var data = {

    user_id : $('#users-area [data-toggle="dropdown"]').attr('data-id'),
    message : $('[data-form="send_notification"] [data-input="message-textarea"]:last').val()

};

console.log(data.user_id);
console.log(data.message);

$.post(URL+'notifications/send_notification', data, function(e){

    if(e.status){

            $('body').append('<div class="success_box"><span class="glyphicon glyphicon-thumbs-up"></span><p>Notification sent</p></div>');
            $('.success_box').delay(1200).fadeOut();
            window.location = window.location.href;

        } else {

                //alert('Uh oh! Something went wrong, please try again..');

        }

});

在我的控制器中,我只有:

public function send_notification(){

    //die('msg: '.$this->input->post('message'));
    die('uid: '.$this->input->post('user_id'));

}

这是表单的代码:

<div id="send_message" class="lightbox">

<h3>Send Notification</h3>

<?php echo form_open('notifications/send_notification', 'data-form="send_notification"'); ?>

    <label for="to-user">To </label>
    <div id="users-area" class="btn-group dropdown"><button data-users="users" type="button" class="btn btn-default">Select a user</button><button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
        <ul data-dropper="user-dropdown" id="user-drop" class="dropdown-menu" role="menu">
            <li><a data-id="0" href="#">All Users</a></li>
        </ul></div>
    <br>
    <label for="message">Message </label><br>
    <textarea value="" data-input="message-textarea" id="message"></textarea>
    <br>
    <p><?php echo form_submit('', 'Send', 'class="btn btn-primary"'); ?></p>

        <?php echo form_close(); ?>

</form>

结果是我没有得到 message 或 user_id 的任何值......什么都没有......

请帮忙!

【问题讨论】:

    标签: jquery model-view-controller codeigniter-2


    【解决方案1】:

    问题是我在 jQuery 中的表单 $.post() 函数之后没有返回 false,这导致表单被推送,因此页面被刷新,因此刷新后没有 post 值。见下文:

    var data = {
    
        user_id : $('#users-area [data-toggle="dropdown"]').attr('data-id'),
        message : $('[data-form="send_notification"] [data-input="message-textarea"]:last').val()
    

    };

    console.log(data.user_id);
    console.log(data.message);
    
    $.post(URL+'notifications/send_notification', data, function(e){
    
        if(e.status){
    
            $('body').append('<div class="success_box"><span class="glyphicon glyphicon-thumbs-up"></span><p>Notification sent</p></div>');
            $('.success_box').delay(1200).fadeOut();
            window.location = window.location.href;
    
        } else {
    
            //alert('Uh oh! Something went wrong, please try again..');
    
        }
    });
    return false;
    

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 2012-06-02
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      相关资源
      最近更新 更多