jQuery с Codeigniter AJAX Post проблема - PullRequest
1 голос
/ 25 июля 2011

Я пытался понять это, но это оказалось сложнее, чем я думал.Тем не менее, я пытаюсь сделать ajax post запрос, но POST кажется пустым, когда я отправляю его.

Мой HTML-файл

    <div id="statusUpdate">
        <?php echo form_open(base_url() . 'profile/statusUpdate', array('id' => 'statusUpdateForm', 'name' => 'statusUpdateForm')); ?>
            <input type="text" value="Hva tenker du på?" name="profileUpdate" id="profileUpdate" onfocus="if(this.value == 'Hva tenker du på?')this.value=''" onblur="if(this.value == '')this.value='Hva tenker du på?'" />
            <input type="submit" value="" name="profileUpdateButton" id="profileUpdateButton" />
        <?php echo form_close(); ?>
    </div>

Мой Javascript

        $('#statusUpdateForm').submit(function() {

        $.ajax({ // Starter Ajax Call

            method: "POST", 
            url: baseurl + 'profile/statusUpdate', 
            data: $('#statusUpdateForm').serialize(),
            success: function(data) { 
                alert(data);
            }

        });

        return false;

    });

Мой PHP (часть моего medhod в контроллере)

    // Check if the input is a ajax request
    if($this->input->is_ajax_request()) {
        echo $_POST['profileUpdate'];
    }

Обратите внимание, когдая помещаю эхо "Hello World" и т. д. в контроллер, я получаю "Hello World" в окне предупреждения от javascript.

Я также пробовал var_dump на $ _POST, и он возвращает массив (0) {} Когда я пытаюсь вывести конкретную переменную $ _POST ['profileUpdate'], я получаю такую ​​ошибку:

enter image description here

также сделал предупреждение от функции seralize i JS, вот что я получил,

enter image description here

Есть кто-нибудь, кто знает, как я могу решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 25 июля 2011

Попробуйте изменить method на type.

Я предполагаю, что скрипт выполняет запрос GET, который является настройкой по умолчанию при использовании ajax() вместо запроса POST. Как это:

$.ajax({ // Starter Ajax Call

        // "method" isn't an option of $.ajax
        // method: "POST", 
        type: "POST", 

        url: baseurl + 'profile/statusUpdate', 
        data: $('#statusUpdateForm').serialize(),
        success: function(data) { 
            alert(data);
        }

    });
0 голосов
/ 24 сентября 2012

Попробуйте следующий код

В представлении добавить следующую форму

<?php echo form_open('welcome/CreateStudentsAjax'); ?>

    <label for="roll">Student Roll Number</label>
    <input type="text" id="txtRoll" value="" name="roll"/>

    <label for="Name">Students Name</label>
    <input type="text" id="txtName" value="" name="name"/>

    <label for="Phone">Phone Number</label>
    <input type="text" id="txtPhone" value="" name="phone"/>

    <input type="submit" name="submit" value="Insert New Students"  />

    <?php echo '</form>'; ?>

Часть JQuery ниже

            $(document).ready(function(){

                $('form').submit(function(){
                    //alert('ok');      
                    $.ajax({
                        url:this.action,
                        **type:this.method,**
                        data:$(this).serialize(),
                        success:function(data){
                            var obj = $.parseJSON(data);

                            if(obj['roll']!=null)
                            {                               
                                $('#message').text("");
                                $('#message').html(obj['roll']);
                                $('#message').append(obj['name']);
                                $('#message').append(obj['phone']);
                            }
                            else
                            {                               
                                $('#message').text("");
                                $('#message').html(obj); 
                            }

                        },
                        erro:function(){
                            alert("Please Try Again");
                        }                        
                    });
                    return false;
                });                        
            });

        </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...